# 遞迴 心法
遞迴的三個條件:
邊界條件
遞迴前進段
遞迴返回段
當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。
主要寫的點,
一定要有收斂點,
第二重新呼叫自己
先找出 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);
}
```