题目:
定义Fibonacci数列如下:
0 n=0
f(n) = 1 n=1
f(n-1)+f(n-2) n=2
输入n,用最快的方法求该数列的第n项。
代码:
用递推法替换递归法,用空间换取时间。
int Fibonacci(int n) { int sum = 0; if(n == 0) { sum = 0; }else if(n == 1) { sum = 1; }else { int n_2 = 0; int n_1 = 1; sum = 1; for(int i = 2; i <= n; i++) { sum = n_2 + n_1; n_2 = n_1; n_1 = sum; } } return sum; }
原文:http://blog.csdn.net/mmoojing/article/details/18893247