| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10635 人关注过本帖
标题:关于斐波那契数列
取消只看楼主 加入收藏
dada125
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2011-11-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于斐波那契数列
我刚学c,写了个斐波那契数列的程序,但是从48项开始结果就是负数了,怎么回事啊?有哪位大侠解答一下!
ps:我曾把int  f1,f2,f3;改为long f1,f2,f3;还是没用!第48个值为:-811192543
/*
    2011年11月3日20:21:25
    斐波那契数列指第n项是前两项之和:1,2,3,5,8,13,21以此类推
    斐波那契数列第n项的值

*/
#include<stdio.h>
int main (void)
{
    int  f1,f2,f3;
    int n =1,i;
    while ( n != 0)
    {
        f1 = 1;
        f2 = 2;
        printf("请输入n的值:(退出请输“0”)");
        scanf("%d",&n);
        if (n ==1)
        {
            printf("第%d个值为:%d\n",n,f1);
        }
        else if (n == 2)
        {
            printf("第%d个值为:%d\n",n,f2);
        }
        else if (n >= 3)                 //从第三项开始的算法
        {
            for(i = 3; i <=n; i++)
            {
                f3 = f1 + f2;
                f1 = f2;
                f2 = f3;
            }
            printf("第%d个值为:%d\n",n,f3);
        }
        else if ( n != 0)
        {
            printf("您输入的值有误,请重新输入!\n");
        }   
    }

    return 0;

}

/*
    在WIN7下Vc++6.0中的输出结果是:
    ------------------------------
    能正确显示到第46项。
    ------------------------------
*/

[ 本帖最后由 dada125 于 2011-11-4 10:10 编辑 ]
搜索更多相关主题的帖子: include 
2011-11-03 21:05
dada125
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2011-11-3
收藏
得分:0 
对啊。46的时候就是负数了。但是47为什么是正数呢
请输入n的值:(退出请输“0”)45
第45个值为:1836311903
请输入n的值:(退出请输“0”)46
第46个值为:-1323752223
请输入n的值:(退出请输“0”)47
第47个值为:512559680
请输入n的值:(退出请输“0”)48
第48个值为:-811192543
请输入n的值:(退出请输“0”)0
2011-11-03 21:56
dada125
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2011-11-3
收藏
得分:0 
哦。大概知道了。我刚学,好多知识还没涉及到。先谢谢各位拉!以后少不了要麻烦大家!
2011-11-04 10:09
快速回复:关于斐波那契数列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017428 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved