定義
求階乘
- 遞歸思想:n的規模的解決需要藉助n-1,n-1規模的解決需要藉助n-2…直到到達一個臨界點。
- 循環實現
- 遞歸實現
1+2+3+4+…+100的和
遞歸必須滿足的三個條件
- 遞歸必須要有一個明確的終止條件
- 該函數所處理的數據規模必須在遞減
- 這個轉化必須是可解的
循環和遞歸
- 所有的循環都可以使用遞歸實現,但不是所有的遞歸都可以用循環解決。
- 遞歸:
- 循環:
漢諾塔
public class Hanoi {
public static void main(String[] args) {
move(4,"石柱1","石柱2","石柱3");
}
private static void move(int i, String from, String buffer, String to) {
if(i == 1){
System.out.println(i+"from"+from+"to"+to);
return;
}
move(i-1,from,to,buffer);
System.out.println(i+"from"+from+"to"+to);
move(i-1,buffer,from,to);
}
}
遞歸的應用
- 樹和森林就是以遞歸的方式定義的
- 樹和圖的很多算法都是以遞歸來實現的
- 很多數學公式就是以遞歸的方式定義的