第78套上机考试试题
编写函数FibValue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数WData()从IN.dat中读取50个数据t,分别得出结果,且把结果输出到OUT.dat文件中。
例如,当t=1000时,函数值为1597。
注意:部分程序已经给出。请勿改动主函数main()和写函数WData()的内容。
第78套试题答案及详解
【审题分析】分析题同可知,题中需要解决的问题就是实现FibValue函数的功能问题,而FibValue函数的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。因此本题的关键在于如何判断数值的大小。
【解题思路】题中Fibonacci数列是一个递归数列,所以当fn<=t时,继续执行递归运算;当fn>t时,退出while循环,这时fn值就是Fibonacci数列中大于t的最小的~个数。
【参考答案】
8 }
9 reLurn fn;
10 }
【易错分析】Fibonacci数列中从第3个数开始,每一个数都应该是前两个数的和。
【考点链接】递归算法。
责任编辑:小草