函数fib1、fib2求得菲波那契数列第n项(n>40)的速度并不相同,清指出速度慢的函数名,并简要说明原因

19 查阅

函数fib1、fib2求得菲波那契数列第n项(n>40)的速度并不相同,清指出速度慢的函数名,并简要说明原因。

参考答案:

函数fibl。原因是递归算法时间消耗大。函数fibl。原因是递归算法时间消耗大。 解析:[问题1](1)函数fibl不能通过编译,是因为语句“fibl(n)=fibl(n-1)+fibl(n-2)”出错,正确应该为“return fibl(n-1)+fibl(n-2)”。 (2)for循环中i从3开始递增,对于i=1或2并不会执行,因此,只需给f赋初值1即可。 [问题2]由于long数据类型是有范围限制的,当n超过某个值时,函数结果就会溢出,接下来的计算结果也就不会准确了。 [问题3]两个函数一个采用的是

软考初级