|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
用数组求小于某个数的前n项斐波那契数列,本来是个很简单的问题,我的代码如下
- # include <stdio.h>
- #define MAX 128
- int main()
- {
- int a[MAX]={0};
- a[0]=1;
- a[1]=2;
- int i;
- for(i=2;a[i]<4000;i++)
- {
- a[i]=a[i-1]+a[i-2];
- printf("a[%d]=%d\n",i,a[i]);
- }
- return 0;
- }
复制代码
然而编译结果是这样。。。
for一直循环下去直到值溢出,有大佬知道这是为什么吗
- # include <stdio.h>
- #define MAX 128
- int main()
- {
- //数组只定义了128个元素,循环到了3999,肯定溢出啊。
- //而且斐波那契数列到第45项 int 类型就装不下了。
- int a[MAX]={0};
- a[0]=1;
- a[1]=2;
- int i;
- for(i=2;a[i]<4000;i++)
- {
- a[i]=a[i-1]+a[i-2];
- printf("a[%d]=%d\n",i,a[i]);
- }
- return 0;
- }
复制代码
|
|