题目:
斐波那契数列中的每一项被定义为前两项之和。从 1 和 2 开始,斐波那契数列的前十项为:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中数值不超过 4 百万的项,找出这些项中值为偶数的项之和。
分析:题目是没什么难度,不过第一次写还是有一个地方错了。我们都知道斐波那契数列的前几项,所以在计算的时候会先写出来f[1] = 1,f[2] = 2;然后再用循环计算其他的,这里需要注意的是f[2]也是偶数,所以,sum的初始值应该是2,而不是零;或者在最后输出的时候sum+2。
#include<stdio.h>
int main()
{
int i;
int a[201],sum=2;
a[1] = 1;a[2] = 2;
for(i = 3; ; i ++)
{
a[i] = a[i-1] + a[i-2];
if(a[i] > 4000000)
break;
if(a[i] % 2 == 0)
sum += a[i];
}
printf("%d\n",sum);
return 0;
}