标题:新手关于分数序列的求解
取消只看楼主
我就是怪蜀黍
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-9
结帖率:100%
已结贴  问题点数:10 回复次数:4 
新手关于分数序列的求解
求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……前20项之和。
我的做法
#include<stdio.h>
void main()
{
    int i,t;
    float a=2,b=1,s=2;
    for(i=1;i<20;i++)
    {
        a=a+b;b=++b;
        s=s+a/b;
    }
    printf("%f\n",s);
}

还有就是我看到分子和分母都是斐波那契数列,所以有试了下面一个程序,但是还是错了
#include<stdio.h>
void main()
{
    int i;
    float f1=2,f2=3,k1=1,k2=2,s=2;
    for(i=1;i<10;i++)
    {
        f1=f1+f2;
        f2=f2+f1;
        k1=k2+k1;
        k2=k1+k2;
        s=(k1/f1)+(k2/f2)+s;
    }
    printf("%f\n",s);
}
正解和我的第一种做法多了一个中间变量

#include<stdio.h>
void main()
{
    int i,t;
    float a=2,b=1,s=0;
    for(i=1;i<=20;i++)
    {
        s=s+a/b;
        t=a;
        a=a+b;
        b=t;

    }
    printf("%f\n",s);
}
问题可能问的很弱智,轻喷。。。
为什么我的程序会错?错在哪里?谢谢

[ 本帖最后由 我就是怪蜀黍 于 2013-4-11 23:09 编辑 ]
搜索更多相关主题的帖子: include void 
2013-04-11 23:00
我就是怪蜀黍
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-9
得分:0 
回复 2楼 yctchxf
为什么我的两个程序会错?错在哪里?谢谢

我是新手,多多指教
2013-04-11 23:08
我就是怪蜀黍
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-9
得分:0 
回复 5楼 韶志
对了,我是想错了,但是这个程序我看到的第一眼就想到斐波那契数列来做,我就是不知道为甚也不对

我是新手,多多指教
2013-04-12 07:46
我就是怪蜀黍
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-9
得分:0 
回复 7楼 韶志
我之所以想写这个程序是因为受到这个代码的影响,所以没想到用数组
#include<stdio.h>
void main()
{
    int i,f1=1,f2=1,s=0;
    printf("%12d%12d",f1,f2);
        for(i=0;i<20;i++)
        {
            f1=f1+f2;
            f2=f2+f1;
            printf("%12d%12d",f1,f2);
            if(i%2==0)
                printf("\n");
        }
}
我感觉比较巧妙,所以就按照这个思路写了写下去,但是现在看看真的很麻烦还是很容易错,不过谢谢啦

我是新手,多多指教
2013-04-12 12:43
我就是怪蜀黍
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-9
得分:0 
回复 8楼 韶志
对了,关键就是f和k的位置,我真是反反复复看了很多变就是看不出来,还有s=3.5;
我也没想到,我想到的只是把i<20,改成i<10;谢谢啦。。

我是新手,多多指教
2013-04-12 12:47



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




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

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