解题思路:


观察数列可知其规律,从第二项开始,分子是前一项的分子和分母数字之和,分母的大小是前一项分子
将分子定义为up,分母定义为down,在循环次数为n的for循环里,要做两件事:

第一,把up/down的值加进sum;第二,改变up和down的值为下一次循环做准备。
第一件事不难,但第二件里值得注意的是up改变为up+down之后,down的值不能直接用up赋予,因为此时up已经不是原来那个up了。我们需要引入另一个变量来存放原来的up,它就是a。首先让a存放up原先的值,再改变up,最后再将a的值赋给down,这样就能达到目的了。


注意事项:


1. 改变分子之后,要想正确地改变分母,需要另一个变量帮忙。

2. for循环中,可以将第一项的up和down写在初始值处,也可以写在for循环之前,这样不会影响循环体内up和down的改变。


参考代码:

#include <stdio.h>
int main(){
    int n,up,down,a,i;
    double sum;
    scanf("%d",&n);
    for(i=1,down=1,up=2;i<=n;i++)
    {
        sum += 1.0*up/down;
        a = up;
        up = up + down;
        down = a;
    }
    printf("%.2lf",sum);
return 0;
}




点赞(0)
 

0.0分

13 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

风之飞鱼 1年前 回复TA
sum未初始化
进化的程序猿 2年前 回复TA
通俗易懂