動態規劃-菲波那切數列--DP_2
阿新 • • 發佈:2019-01-08
就是簡單的把這個程式碼貼出來,按道理來講這個大家都會
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); } }