我修改了一下程序,将斐波拉契数列全部列出,你可用手机或电脑上的计算器逐项验证计算,你说的 4613732 是不对的( 再说 4613732 超过了 4000000 )!#include<stdio.h>
void main()
{
int i = 0, sum1 = 1,sum2 = 1,sum = 0;
int f1 = 1;
int f2 = 1;
printf("%d %d ", f1, f2); // 输出数列前两个 1
while (i < 20)
{
f1 = f1 + f2; // 计算出下一个数,并存放于 f1 中
f2 = f2 + f1; // 计算出下两个数,并存放于 f2 中
if (f1 <= 4000000 && f2 <= 4000000)
{
sum1 += f1;
sum2 += f2;
sum = sum1 + sum2;
}
else
break;
i++;
printf("%d %d ", f1, f2);
}
printf("\n");
printf("\n");
printf("奇数项和为:%d \n", sum1);
printf("偶数项和为:%d \n", sum2);
printf("前 32 项总和为:%d \n", sum);
printf("\n");
}
****************************************
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309
奇数项和为:2178309
用数项和为:3524577
前32项总和为:5702886
请按任意健继续 . . .
|