原题链接:[编程入门]有规律的数列求和
我又又又又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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复