题目:
定义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;
}