关于斐波那契数列问题C编程实现

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:21:03
我新人,没很多积分,多少是点意思。
如下是书上的代码实现斐波那契数列,用数组实现的,我有个地方不明白;
#include<stdio.h>
main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; //我主要这里不明白,在int f[20]={1,1},是定义f[0]=1,f[1]=1,到了这里的循环是,i从2开始,也就是从f[2]开始循环,可是循环第一次时应该是:f[2]=f[2-2]+f[2-1]=1,然后继续循环,得的序列应该是1,1,1,3。。。,而不是1,1,2,3,。。呀别的地方没有不明白的了,谢谢大家。
for(i=0;i<20;i++)
{
if(i%5==0)
printf("\n");
printf("%d12d",f[i]);
}
printf("\n");
}

f数组前两项 代表了斐波那契数列 的 0和1 时的值。 你可以算算
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
i=2啊, f[2]=f[2-2]+f[2-1] 那就是说 f[2]=f[0]+f[1] 应该等于 f[2]=1+1;因为前面int f[20]={1,1};
已经定义过了f[0]和f[1]都给值为1