(简答题)
裴波那契(Fibonacci)数列的定义为:它的第1项和第2项均为1,以后各项为其前两项之和。若裴波那契数列中的第n项用Fib(n)表示,则计算公式为: 试编写出计算Fib(n)的递归算法和非递归算法,并分析它们的时间复杂度和空间复杂度。
正确答案
递归算法:
递归算法的时间复杂度为O(2n),空间复杂度为O(n);非递归算法的时间复杂度为O(n),空间复杂度为O(1)。
递归算法的时间复杂度为O(2n),空间复杂度为O(n);非递归算法的时间复杂度为O(n),空间复杂度为O(1)。
答案解析
略
相似试题
(简答题)
斐波那契(Fibonacci)数列问题:Fibonacci数列递归定义为:
(简答题)
编一个程序,求费波那契(Fibonacci)序列:1,1,2,3,5,8,……..。请输出前20项。序列满足关系式:Fn=Fn-1+Fn-2
(简答题)
已知Fibonacci数列的递归定义如下: 试写出求解fib(n)的递归算法。
(简答题)
已知k阶斐波那契序列的定义为: f0=0,f1=0,…,fk-2=0,fk-1=0; fn=fn-1+fn-2+…+fn-k,n=k,k+1,… 试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
(简答题)
请用伪代码给出求解斐波那契数的递归算法。
(简答题)
试利用循环队列编写求k阶菲波那契序列中前n+1项的算法,要求满足:fn≤max而fn+1>max,其中max为某个约定的常数。(注意:本题所用循环队列的容量仅为k,则在算法执行结束时,留在循环队列中的元素应是所求k阶菲波那契序列中的最后k项)
(简答题)
输入一个正整数m,输出Fibonacci数列小于m的所有项。Fibonacci数列:0,1,1,2,3,5,8,13……从它的第三项开始每一项的值都是其紧接着的前两项的和。
(简答题)
Fibonacci数列的各元素为:1、1、2、3、5、8、……,满足以下关系F1=1,F2=1,Fn=Fn-1+Fn-2,用M函数文件实现,数列的元素个数为输入变量,且当某个元素大于50时,退出循环结构。
(简答题)
Fibonacci数列的各元素为:1、1、2、3、5、8、……,满足以下关系F1=1,F2=1,Fn=Fn-1+Fn-2用while和for两种方法实现。