C语言题目描述 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小

输入N输出前N项和... 输入N 输出前N项和 展开
 我来答
My_Persistence
推荐于2017-12-15 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:432万
展开全部
#include <stdio.h>
#include <math.h>
int main()
{
    int N,i=0;
    float ai,bi;
    float aj,bj;
    float a,b;
    float sum;
scanf("%d",&N);
    ai=1,bi=2;  //第1项分母分子
    aj=2,bj=3;  //第2项分母分子
    sum=(bi/ai)+(bj/aj); //先算前两项的和
    for(i=0;i<N-2;i++)
    {
        a=ai+aj; //从第3项开始,分母是前两项分母之和
        b=bi+bj; //从第3项开始,分子是前两项分子之和
        sum+=b/a;
        ai=aj;
        bi=bj;
        aj=a;
        bj=b;
    }
    printf("前%d项的和= %.2f\n",N,sum);
    return 0;
}

示例运行结果:

2

前2项的和= 3.50

20

前20项的和= 32.66

追问
用while语句怎么做?
追答

就换一下嘛,一样的道理,修改如下:

#include <stdio.h>
#include <math.h>
int main()
{
    int N,i=0;
    float ai,bi;
    float aj,bj;
    float a,b;
    float sum;
    scanf("%d",&N);
    ai=1,bi=2;  //第1项分母分子
    aj=2,bj=3;  //第2项分母分子
    sum=(bi/ai)+(bj/aj); //先算前两项的和
i=0;
while(i<N-2)
{
a=ai+aj; //从第3项开始,分母是前两项分母之和
        b=bi+bj; //从第3项开始,分子是前两项分子之和
        sum+=b/a;
        ai=aj;
        bi=bj;
        aj=a;
        bj=b;
i++;
}
    printf("前%d项的和= %.2f\n",N,sum);
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式