关于Fibonacci的有关问题

关于Fibonacci的问题#includestdio.hvoid main(){int i, a[20]{1,1}for (i2 i20 i++){a[i] a[i-

关于Fibonacci的问题
#include<stdio.h>
void main()
{
int i, a[20]={1,1};
for (i=2; i<20; i++)
{
a[i] = a[i-2] + a[i-1]; 求这里为什么输出的结果是2 百般不可理解 i-2 不是等于0 i-1 =1 为什么是2而不是1呢
printf("%d\n",a[i]);
}
for (i=0; i<20; i++)
{
if (i%5 == 0)
{
printf("\n");
}
printf("%12d", a[i]);
}
 


[解决办法]
i-2 = 0 ; i-1=1 所以是 a[0] + a[1] = 2;

a[20]={1,1}; a数组 a[0]与 a[1] 你赋值都为1了。 i-2,i-1只是数组的下标。
[解决办法]

C/C++ code
#include<stdio.h>void main(){int i, a[20]={1,1};for (i=2; i<20; i++){a[i] = a[i-2] + a[i-1]; //求这里为什么输出的结果是2//运行到此时i=2,a[2]=a[2-2]+a[2-1] 也就是a[2]=1+1。结果==2是正确的啊。//因为你的初始数组时给a[0],a[1]分别赋值为1了。明白了?printf("%d\n",a[i]);}for (i=0; i<20; i++){if (i%5 == 0){printf("\n");}printf("%12d", a[i]);}printf("\n");}