求Fibonacci 数列
来源:互联网 发布:淘宝标题优化软件 编辑:程序博客网 时间:2024/06/05 14:57
/*题目:定义Fibonacci 数列如下: / 0 n=0f(n) = 1 n=1 \ f(n-1)+f(n-2) n=2输入n,用最快的方法求该数列的第n 项。分析:递归方法重复计算了很多项,通过定义两个额外空间保存前两项的值,可以空间换取时间。复杂度为O(N)。*/#include <cstdlib>#include <iostream>int FibonacciRcur(int n){ if(n == 0||n == 1) return n; if(n > 2) return FibonacciRcur(n-1) + FibonacciRcur(n-2);}int Fibonacci(int n){ int a = 0; int b = 1; int res = 0; if(n == 0||n == 1) return n; else { for(int i = 0;i < n;++i) { res = a + b; a = b; b = res; } } return res;}int main(int args,char ** argv){ int n = 5; int res = FibonacciRcur(n); int res1 = Fibonacci(n); std::cout<<res<<std::endl; std::cout<<res1<<std::endl; system("pause"); return 0;}