原题链接:[编程入门]有规律的数列求和
解题思路:
观察数列可知其规律,从第二项开始,分子是前一项的分子和分母数字之和,分母的大小是前一项分子。
将分子定义为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分
13 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复