大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第一项为1)。
n<=39
第一种解法:递归写法
public class Solution{
public int Fibonacci(int n){
if(n<0)
return -1;
if(n ==1 || n==0)
return n;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
这种解法的好处在于,递归特别容易实现,逻辑清晰,但是产生的内存代价也是非常巨大的
第二种解法。从头开始用数组计算Fibonacci,从f(0),f(1)到f(n)。这样的解法代价小,运算快
public class Solution {
public int Fibonacci(int n) {
int[]result = new int[40];
result[0] =0;
result[1] =1;
if(n <0)
return -1;
if( n ==1 || n==0)
return n;
for(int i=2;i<=n;i++)
result[i] =result[i-1]+result[i-2];
return result[n];
}
}