|  | 
 
| 
用数组求小于某个数的前n项斐波那契数列,本来是个很简单的问题,我的代码如下
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 复制代码# 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;
}
 | 
 |