| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:数列计算问题
只看楼主 加入收藏
不二洛基袋鼠
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-2-28
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:2 
数列计算问题
有一个分数数列:2/1,3/2,5/3,8/5,13/8,21/13,……求出这个数列前n项之和。
输入样例:20
输出样例:32.660

#include<stdio.h>
int main()
{
    int n,i,c;
    float t,sum=0,a=2.0,b=1.0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        t=a/b;
        sum=sum+t;
        c=a;a=a+b;b=c;
        }
    printf("%.3f\n",sum);
    return 0;
}
我觉得没有问题啊,可是在测试的时候,学校判题系统认为其中一个测试点有问题,我想不出来
输入是100,系统显示应有输出应为标准输出:162.103
而我的输出是207.828
我看了网上其他人编的程序和我的差不多,求解答
搜索更多相关主题的帖子: 测试 计算 include return 
2013-03-31 22:03
uushuo
Rank: 2
等 级:论坛游民
帖 子:13
专家分:31
注 册:2009-1-22
收藏
得分:20 
越界了吧,斐波那契数列增长非常非常快的,你把c也改成float类型的就好了。

[ 本帖最后由 uushuo 于 2013-3-31 22:11 编辑 ]
2013-03-31 22:07
不二洛基袋鼠
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-2-28
收藏
得分:0 
是的,把c改成double型就可以了
2013-03-31 22:10
快速回复:数列计算问题
数据加载中...
 
   



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

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