#include<stdio.h>
#include<conio.h>
void main()
{
long long sum=2,x=1,y=2,z=0,i;
for(i=2;i<200000;i++)
{
z=x+y;
y=y+z;
x=z;
if(z%2==0)
sum+=z;
if(y%2==0)
sum+=y;
}
printf("%lld",sum);
getch();
}
添加偶数斐波那契数。对于 i<200000,它可以正常工作,但是当我将限制再增加一位数时,它显示否定答案。我已经尝试过“unsigned long long”和“long long int”,但我没有得到正确的答案..请帮助我......
最佳答案
您应该打印总和:
printf("%lld\n", sum);
printf("%lld");
将打印垃圾值
如果这不是问题,那么您实际上无法对 i<2000000
求和斐波那契数。
因为:
对于i<20000
你的程序会给你一个总和,它实际上是一个8359数字。现在怎么样i<2000000
?这将需要大量的时间和内存。我认为你实际上并没有这样做。这是不可行的。
最后,您的程序根本不生成斐波那契数
关于c - 这个c程序中的 "long long "有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27733804/