标题:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/12……求出这个数列的前20项之和。 ...
取消只看楼主
kiddnoke
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-22
结帖率:100%
已结贴  问题点数:20 回复次数:4 
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/12……求出这个数列的前20项之和。 我哪里写错了
#include<stdio.h>
void main()
{int i=2,j=1,k=1;
    float sn=0,nk;
    for(;k<=20;i=i+2,j=j+2,k++)
    {nk=i/j;
        sn=sn+nk;
    }
    printf("sum=%9.6f\n ",sn);
}

我的  sum=21.000000
而课本上的是这样的。
#include<stdio.h>
void main()
{ int i,t,n=20;
    float a=2,b=1,s=0;
    for (i=1;i<=n;i++)
    {s=s+a/b;
        t=a;
        a=a+b;       /*将前一项分子与分母之和作为下一项的分子*/    
                      b=t ;       /*将前一项的分子作为下一项的分母*/    
          }
    printf (" sum=%9.6f\n",s)
}

课本是 32.660259
搜索更多相关主题的帖子: 序列 之和 分数 
2009-07-26 12:46
kiddnoke
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-22
得分:0 
回复 2楼 zzqsw
谢谢楼上,我知道了,
可是我的想法是后一项分子和分母分别是前两项分子的和 &前两项分母的和。
我现在还不知道我的算法哪里出错了。
2009-07-26 14:09
kiddnoke
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-22
得分:0 
我真是,傻逼,明白了,呵呵,知道哪里错了。
2009-07-26 14:10
kiddnoke
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-22
得分:0 
哦,这个还没有注意到哦,O(∩_∩)O谢谢
2009-07-26 17:48
kiddnoke
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-22
得分:0 
#include<stdio.h>
void main()
{
    int k=1;
    float i1=1,i2=2,
        j1=2,j2=3,s=0,nk,in,jn;
    for(;k<=20;k++)
    {i1=i1+i2;i2=i2+i1;
        j1=j1+j2;j2=j2+j1;
        nk=in/jn;
        s=s+nk;
    }
    printf("sum=%9.6f \n" ,s);
}
各位大哥,我还是愚笨,我是想用前面两个的分子做后面一个数的分子,前面两个的分母做后面一个数的分母。我的算法到底哪里错了啊。算出来的是负数!~!~ 我初学!~
2009-07-26 19:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-280583-1-1.html




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

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