莫奕


私信TA

用户名:uq_37669098257

访问量:43

签 名:

等  级
排  名 42558
经  验 308
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:通过观察题目所给出的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分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区