猫史档案馆


【C语言作品分享】斐波那契数列【求助帖】

用户:程序侯程序侯查看:0 回复:1 评论:0 创建时间:2020-06-23T23:16:53


【作品展示】

【作品介绍】

当你输入小于46的数时,没有任何问题,但第44项的1134903170加第45项的1836311903竟然等于-132375223!接下来正数和附属交错出现……我试过吧int类型的a、b、A、B四个变量改成long类型,可结果没有半点变化!

【作品源代码】

#include <iostream>
#include <stdio.h>
void main():
{
   cout << "你要计算几项斐波那契数列?";
    int a, b;int A, B;
    int numbers = 0;
    cin >> numbers;
    a = 1;
    b = 1;
    printf("第1项:1\n");
    for(int i = 2 ; i < numbers + 1; i = i+1)
    {
        A = a; B = b; /*A和B是a和b的备份*/a = B; b = A + B; 
        printf("第%d项:%d\n", i, b);
    }
}

【提示】

该作品为C/C++作品,海龟编辑器无法运行。


回复

上一页1 页 / 共 1下一页
急_开_锁_办_证810864急_开_锁_办_证810864

C语言标准没有规定long、short的具体范围。在有的编译器里,long类型和short类型和int类型数据精度一样,也就是没有区别。你可以改用C99标准的long long类型试试。

 

别的一些语言,比如Java,对short、int、long可表示的范围长度有明确的规定,那就不会有这个问题。

点赞0


评论