用malloc设定动态数组
#include <stdio.h>
#include <stdlib.h>
int qIterativ(int n)
{ int *q,i;
q=(int*)malloc((n+1)*sizeof(int));
q[1]=q[2]=1;
for(i=3;i<=n;i++)
{
q[i]=q[i-q[i-1]]+q[i-q[i-2]];
}
return q[n];
}
int main()
{
int n = 0;
int ergebnis;
printf("Nummer der gewuenschten Q-Zahl: ");
scanf("%i", &n);
if(n <= 0)
{
return 1;
}
ergebnis = qIterativ(n);
if(ergebnis == 0)
{
printf("Zu wenig Speicher zur Berechnung einer so großen Q-Zahl.\n");
return 1;
}
else
{
printf("Iterative Loesung: %i\n", ergebnis);
return 0;
}
}
用数组
#include <stdio.h>
#include <stdlib.h>
int qIterativ(int n)
{ int i;
int q[1000];
q[1]=q[2]=1;
for(i=3;i<=n;i++)
{
q[i]=q[i-q[i-1]]+q[i-q[i-2]];
}
return q[n];
}
int main()
{
int n = 0;
int ergebnis;
printf("Nummer der gewuenschten Q-Zahl: ");
scanf("%i", &n);
if(n <= 0)
{
return 1;
}
ergebnis = qIterativ(n);
if(ergebnis == 0)
{
printf("Zu wenig Speicher zur Berechnung einer so großen Q-Zahl.\n");
return 1;
}
else
{
printf("Iterative Loesung: %i\n", ergebnis);
return 0;
}
}