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

题目

函数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]两个函数一个采用的是递归算法,另一个是迭代算法,通常情况下,前者的计算时间更长。因为递归会造成大量的函数调用和数据返回,需要很多的时间,效率较低。
更多“函数fib1、fib2求得菲波那契数列第n项(n>40)的速度并不相同,清指出速度慢的函数名,并简要说明原因 ”相关问题
  • 第1题:

    计算斐波那契数列前n项的和。


    C解析:fib(2)=fib(1)+fib(O)=2+1=3,所以函数被调用3次,分别是fib(2)

  • 第2题:

    计算斐波那契数列第n项的值。在数学上,斐波那契数列以如下递归方法定义: F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) 斐波那契数列的前几项是如下的数字: 1、1、2、3、5、8、13、21、34、......


    123

  • 第3题:

    4、计算并输出斐波那契数列第20项的值。


    m,m

  • 第4题:

    请编写Python程序完成以下要求: 编写函数,求斐波那契数列第n项的值,F1=1,F2=1,Fn=Fn-1+Fn-2。


    print("学Python,称为Python程序员")
    print("学Python,称为P

  • 第5题:

    3、计算斐波那契数列前n项的和。


    #!/bin/bash a=1 b=1 echo -n -e “$a\t$b” let “n=a+b” count=4 while [$count -gt 0] do let “a=a+b” let “b=b+a” echo -n -e “\t$a\t$b” let “n+=a+b” let “count=count-1” done echo echo “The sum is $n”