原题链接:[编程入门]有规律的数列求和
我又又又又tm把问题复杂化了。。好想捶自己T_T!
看到这个数列上的数字就直接想到斐波那契数列了,就想通过这个求解,其实要是没有想到这个数列,用一般的方法写简洁太多。。
不说了,贴代码吧。。下面是我最先用斐波那契数列写的方法。
#include <stdio.h> //用迭代计算斐波那契数 long fabonacci(int n) { long result; long pre_result; long pre_pre_result; result = pre_result = 1; while (n > 2) { n -= 1; pre_pre_result = pre_result; pre_result = result; result = pre_result + pre_pre_result; } return result; } int main() { int N; scanf("%d", &N); double an; double sum = 0.00; double fenzi; double fenmu; int i; for (i = 0; i < N; i++) { fenzi = (double)fabonacci(i + 3); fenmu = (double)fabonacci(i + 2); an = fenzi/fenmu; sum += an; } printf("%.2lf\n", sum); return 0; }
通过了之后我就看了一些其他的解决方法,心里顿时就想骂自己...
好方法如下,参考其他同学的:
由题意可知后一项的分子等于前一项分子加分母,后一项的分母为前一项的分子。
#include <stdio.h> int main() { int N; scanf("%d", &N); double fenzi = 2; double fenmu = 1; double sum = 0.00; double tmp; while(N > 0) { sum = sum + fenzi / fenmu; tmp = fenzi; fenzi = fenmu + fenzi; fenmu = tmp; N--; } printf("%.2lf\n",sum); return 0; }
0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复