一、题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
二、解题思路:
解法一:递归,但使用递归会存在重复计算的问题,比如计算39,则需要计算38和37,计算38,则需要计算37和36,此时,37就被重复计算了。
解法二:动态规划,利用数组加上for循环的方式。
三、代码:
解法一:
public class Solution {
public int Fibonacci(int n) {
int result = 0;
if(n == 0){
return 0;
}
else if(n == 1){
return 1;
}
else if(n <= 39){
result = Fibonacci(n-1) + Fibonacci(n-2);
}
return result;
}
}
解法二:
public class Solution {
public int Fibonacci(int n) {
int fib[] = new int[n+1];
fib[0] = 0;
fib[1] = 1;
if(n == 0){
return fib[0];
}
else if(n == 1){
return fib[1];
}
for(int i=2; i <= n; i++){
fib[i] = fib[i-1] +fib[i-2];
}
return fib[n];
}
}