就是简单的把这个代码贴出来,按道理来讲这个大家都会
package dynamic.planning;
/*
* 菲波那切数列 1、1、2、3、5、8、13、、、
* 主要公式:f(n) = f(n-1)+f(n-2)
* 这个用DP做的好处是不同重复的计算那么多次的重复数据
*/
public class Fibonacci {
public static void main(String[] args) {
System.out.println(getFibonacci(40));
System.out.println(getFibonacciRecursion(10));
}
// dp
public static int getFibonacci(int n) {
if (n == 1)
return 1;
if (n == 2)
return 1;
int arr[] = new int[n + 1];
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= n; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n];
}
// 递归
public static int getFibonacciRecursion(int n) {
if (n == 1)
return 1;
if (n == 2)
return 1;
return getFibonacciRecursion(n - 1) + getFibonacciRecursion(n - 2);
}
}