首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为 F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:t=1000时,函数值为9
请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为 F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:t=1000时,函数值为9
admin
2009-02-15
71
问题
请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如:t=1000时,函数值为987。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <math.h>
#include <stdio.h>
int fun(int t)
{
}
main()
{
int n;
clrscr();
n=1000;
printf("n=%d, f=%d\n",n, fun(n));
}
选项
答案
int fun(int t) { int a=1,b=1,c=0,i; /*a代表第n-2项,b代表第n-1项,c代表第n项*/ /*如果求得的数。比指定比较的数小,则计算下一个Fibonacci数,对a,b得新置数*/ do { c=a+b; a=b; b=c; } while(c<t); /*如果求得的数c比指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; }
解析
根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。
转载请注明原文地址:https://kaotiyun.com/show/vTID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
小王从农贸市场买来一条金鱼,没过几天鱼就死了。下列最有可能导致金鱼死亡的原因是()。
将水生植物和小鱼放入盛有水的玻璃缸中,密闭后置于光照、温度等适宜条件下。下列相关叙述,错误的是()。
关于生活常识,下列说法错误的是()。
下列说法错误的是()。
国际上用来综合考察居民间收人分配差异状况的一个重要分析指标是()。
甲乙两地居民的恩格尔系数分别为30%和32%,这可能表明()。
一个箱子里有四种不同颜色的小球,每次拿出2个,要保证有10次所拿的结果是一样的,至少要拿()次。
甲、乙、丙三台车床加工方形和圆形的两种零件,已知甲车床每加工3个零件中有2个是圆形的,乙车床每加工4个零件中有3个是圆形的,丙车床每加工5个零件中有4个是圆形的。某天三台车床共加工了58个圆形零件,而加工的方形零件个数的比为4:3:3,那么这天三台车床共加
纸上写有若干个整数,它们的平均数为56,小明将其中的每个奇数乘以2,每个偶数乘以3,所得到的全部计算结果的平均值为134.已知纸上所有奇数的和比所有偶数的和大180,那么纸上共写有几个数?
随机试题
使用描述性语言对评估对象“质”的特征、程度、状态、和性质进行评估属于()
有关控制组件安装要求正确的是()。
张先生了解到()是一种可以在交易所挂牌交易的开放式基金。
下列各项,按“个体工商户生产、经营所得”税目缴纳个人所得税的是()。(2012年)
下列关于个人医疗贷款的表述,错误的是()。
导游员孙某因家中有工艺品厂,在带团旅游时便以低于市场价格向游客兜售工艺品,共售出工艺品价值为1000元,据此,孙某应受到的处罚有()。
FDI
在SQL中,删除表的语句是:
下列关于窗体控件功能描述中,错误的是()。
InterculturalLearningManyteachersmaywonder"whatIamactuallydoing"sometimes.Itdoesn’tseemenoughtoteachgramm
最新回复
(
0
)