题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
思路
1.可以使用递归求解,也可以使用动态规划求解。
2.推荐使用动态规划求解,防止递归栈太深导致栈溢出。
Java代码实现
/**
* 递归解法
*/
public int Fibonacci(int n) {
if(n < 1)
return n;
if(n==1 || n == 2)
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
/**
* 动态规划解法
*/
public int Fibonacci(int n) {
int[] dp = new int[n+1];
dp[1] = dp[2] = 1;
for (int i = 3; i <=n ; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];
}
网友评论