# 遞迴 心法 遞迴的三個條件: 邊界條件 遞迴前進段 遞迴返回段 當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。 主要寫的點, 一定要有收斂點, 第二重新呼叫自己 先找出 base case 最終點 使用java程式碼求5的階乘。(5的階乘=5*4*3*2*1) ```java= * 計算5的階乘(result = 5*4*3*2*1) * @author pplsunny * * */ public class Test01 { public static void main(String[] args) { System.out.println(f(5)); } public static int f(int n) { if (1 == n) return 1; else return n*f(n-1); } ``` ```java= /** * 求數列:1,1,2,3,5,8......第40位的數 * @author pplsunny * */ public class Test_Fibonacci { public static void main(String[] args) { System.out.println(f(6)); } public static int f(int n ) { if (1== n || 2 == n) return 1; else return f(n-1)+f(n-2); } ``` ```java= //河洛塔 public static void main(String[] args) { String a="A"; String b="B"; String c="C"; HanoiMove(3,a,b,c); } public static void HanoiMove(int n, String a,String b,String c) { if(n == 1){ System.out.println(a+"->"+c); }//else { 換成return; 就可以不用else HanoiMove(n-1,a,c,b); // HanoiMove(1,a,b,c); System.out.println("n :"+a+"->"+c); HanoiMove(n-1,b,a,c); } ```