解题思路:将分子分母分开观察不难发现,两者都是按照斐波那契数列的规律排列的,也就是当前项的值等于前两项的和,因此我们可以分别获取分子和分母的值以后,再相除得到当前项的值,然后将各个项累加即可得到答案
注意事项:注意事项主要看代码的注释就行了
参考代码:
#include <stdio.h>
int main()
{
/*
a用来存放分子第n项的值,a1用来存放分子n-2项的值,a2用来存放分子a-1项的值。
b用来存放分母第n项的值,b1用来存放分母n-2项的值,b2用来存放分母a-1项的值。
*/
double sum=0,a,b,a1=2,a2=3,b1=1,b2=2,c;
int i,n;
scanf("%d",&n);
if(n==1)
{
sum=2;
}
else if(n==2)
{
sum=2+3.0/2.0; //这里用3.0除以2.0,而不直接用3除以2是因为2和3是整型常量,那计算结果也是整形,且结果为1.
}
else
{
for(i=3;i<=n;i++) //这部分循环中对应的每一个变量的意义参考第一部分的注释自行体会
{
a=a1+a2;
b=b1+b2;
c=a/b;
sum=sum+c;
a1=a2;
a2=a;
b1=b2;
b2=b;
}
}
sum+=3.5; //不难发现在for循环中,sum的结果仅仅是从第三项开始的,所以还要加上第一项和第二项的值
printf("%.2lf",sum);
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复