解题思路:通过观察题目所给出的1 2 3 5 8 13 21...可得出该数是斐波那契数,由斐波那契数列的递推公式Fn(n)=Fn(n-1)+Fn(n-2) (n>2);所以我们可以先定义一个浮点型的数组用来储存该数列,然后定义一个函数通过递推来求得每一项的值,利用循环赋值给数组;最后进行求解

注意事项:要求保留两位小数,因此数组与用来求和的sum需要用到浮点型来定义,同时在打印结果时也需要用%.2f来确保输出两位小数。

参考代码:

#include<stdio.h>

int feibonaqi(int x);

int main(void)

{

float arr[1000],sum;

int n,i;

scanf("%d",&n);

for(i=0;i<=n;i++)         //求前n项时需要n+1个数

{

arr[i]=feibonaqi(i);       //给数组进行赋值,函数传参。

}

for(i=0;i<n;i++)

{

float m;

m=arr[i+1]/arr[i];

sum=sum+m;            //将每一项的值进行求和。

}

printf("%.2f",sum);      

}

int  feibonaqi(int x)

{

if(x==0)

{

return 1;            //定义第一项的值为1

}

else if(x==1)

{

return 2;            //定义第二项的值为2

}

else

{

return feibonaqie(x-1)+feibonaqie(x-2);           //利用递归来求剩余每一项的值。

}

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论