1、C语言题目
题目内容:
求斐波那契Fibonacci数列 求函数f(n) = 0 n = 0 = 1 n = 1 = f(n-1) + f(n-2) n > 1
2、代码实现
/*题目要求:解法:斐波那契数列的变相考查,总数f(n)=f(n-1)+f(n-2)。F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)编程思路: //算法:采用倒叙计算方法。递归调用方法慢的原因是重复计算太多,采用从下往上计算方法会明显减少重复。//首先根据f(0)和f(1)算出f(2), 再根据f(1)和f(2)算出f(3)……依次类推就可以算出第n项了。这种思路的时间复杂度为O(n).*/int _tmain(int argc, _TCHAR* argv[]){ int m1 = 1; int m2 = 0; int m3 = 0; int n = 0; int max = 0; printf("input month count\n "); scanf_s("%d",&max); while (n
3、Python
- 递归
def fibonacci (n) : if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-2) + fibonacci(n-1) fibonacci(5)
- 非递归
def Fibnacci(n): result = [1,1] if n <= 1: return result[n] for i in range(2,n+1): result.append(result[i-2]+result[i-1]) return result[n]Fibnacci(5)