本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
第5题:
编写函数jsValue(),它的功能是:求Fibonacci数列中大于t的最小一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out5.dat中。
本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
第5题:
编写函数jsValue(),它的功能是:求Fibonacci数列中大于t的最小一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out5.dat中。
【答案】
int jsValue(int t)
{
int f1=0,f2=1,fn;
fn=f1+f2;
while(fn<=t)
{
f1=f2;
f2=fn;
fn=f1+f2;
}
return fn;
}
【解析】
考点:(1)求解Fibonacci数列的第n项的值;
(2)查找满足条件的Fibonacci数列的第n项值。
本题的解题思路是:从第一项开始,逐个求出Fibonacci数列的每一项的值并且与给定的数据相比较,若找到第一个大于给定的数据则将其返回。
程序的流程是:先调用jsValue(n)函数处理数据,由writeDat()函数将数据写回文件out5.dat中。
在jsValue()函数中,根据题目的条件,Fibonacci数列中每一项的值均为前两项之和,将Fibonacci数列的每一项都初始化,然后通过while循环的条件进行判断,当fn<=t时,即第n项的值小于1000,进入while循环体,计算fn的值,每计算一个fn的值就与t相比较一次,直到fn>t即找到大于t的最小的一个数,循环结束,该层while循环的功能就是查找比t大的fn的值,while循环结束后,利用return语句返回fn的值,函数结束。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |