fabonacci数列的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:38:52
#include <stdio.h>
void main()
{
int fibonacci(int ,int num[]);
int n,num[47];
while((scanf("%d",&n))!=-1) 这样的写法为何出错?
{
printf("%d\n",fibonacci(n,num));
}
}

int fibonacci(int n,int num[])
{
int i;
num[0]=0;num[1]=1;
for(i=n;i>=2;i--)
{
num[i]=num[i-1]+num[i-2]; 不能倒推求解吗?
}
return num[n];
}

望高手解答.
while((scanf("%d",&n))!=-1)

是错误的.
至少在cfree里是错误的.

while((scanf("%d",&n))!=-1)//这个没错吧,我用的VC。

num[i]=num[i-1]+num[i-2]; //num[i-1]和num[i-2]还没赋值,加到一块也没意义,所以不用递归只能从头推

http://hi.baidu.com/278193292/blog/item/20c5e6f307a1515a352acc93.html
你可以看看这个 有两种方法

你的
int fibonacci(int n,int num[])
{
int i;
num[0]=0;num[1]=1;
for(i=n;i>=2;i--)
{
num[i]=num[i-1]+num[i-2]; 不能倒推求解吗?
}
return num[n];
}

应该先 n-- 啊,数组下标不是他的位置