原题链接:[编程入门]有规律的数列求和
解题思路:
先观察序列发现:第1项分数为2/1,第2项分数的分子为前一项的分子分母和,分母为前1项的分子,第3项和第2项也是如此关系,此后项以此类推……
,所以定义数组i,根据索引来取值运算
索引(index) | 0 | 1 | 2 | 3 | …… | p |
值(value) | 1 | 2 | 3 | 5 | …… | i[p-1]+i[p-2] |
注意事项:
1、需要提前根据题目设置好数组的初始值
int i[1000] = {1,2} /1000是随便定义的数组大小,也可以在最前面直接 #define max 1000,此处的1000就可以写为max
2、要保留2位小数,所以在数组进行运算的时候要把结果转化成float
m=(float)i[p]/i[p-1];
参考代码:
#include <stdio.h> int main() { int i[1000]={1,2}; int n; float m,s; scanf("%d",&n); for (int p=1;p<=n;p++) { i[p+1]=i[p]+i[p-1]; m=(float)i[p]/i[p-1]; s+=m; } printf("%0.2f",s); return 0; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复