我想用 C 编写斐波那契数列程序,但我得到的最后一个元素为负数
I want to code fibonacci series program in C but I am getting the last element as negative
我不知道为什么最后一个数字是负数。
我希望输出为 0 1 1 ... 'n' 数字(斐波那契数列)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a=-1,b=1,c=0;
for(int i=0;i<n;i++)
{
c=a+b;
printf("%d",c);
a=b;
b=c;
}
return 0;
}
是的,肯定超出了整数范围
1836311903 //before last
-1323752223 //last
最大整数为 2,147,483,647
如果要n=48以上,必须声明a,b,c为long类型
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
long a=-1,b=1,c=0;
for(int i=0;i<n;i++)
{
c=a+b;
printf("%ld\n",c);
a=b;
b=c;
}
return 0;
}
我不知道为什么最后一个数字是负数。
我希望输出为 0 1 1 ... 'n' 数字(斐波那契数列)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a=-1,b=1,c=0;
for(int i=0;i<n;i++)
{
c=a+b;
printf("%d",c);
a=b;
b=c;
}
return 0;
}
是的,肯定超出了整数范围
1836311903 //before last
-1323752223 //last
最大整数为 2,147,483,647
如果要n=48以上,必须声明a,b,c为long类型
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
long a=-1,b=1,c=0;
for(int i=0;i<n;i++)
{
c=a+b;
printf("%ld\n",c);
a=b;
b=c;
}
return 0;
}