在龍男攻略叫人男老婆這件事(三)(試閱)
阿新 • • 發佈:2022-04-04
遞迴:自己呼叫自己
1 遞迴結構
- 遞迴頭:什麼時候不呼叫自身方法。--沒有頭,將陷入死迴圈
- 遞迴體:什麼時候需要呼叫自身方法
2 例1-死迴圈
死迴圈,導致棧溢位
package com.study;
public class T {
public static void main(String[] args) {
T t = new T();
t.test();
}
public void test(){
test();
}
}
PS:java 是棧機制
3 例2
package com.study; public class T { public static void main(String[] args) { System.out.println(f(3)); } //1! 1 //2! 2*1==>2*f(2-1) //3! 3*2*1==>3*f(3-1) //5! 5*4*3*2*1 //遞迴計算階乘 public static int f(int n) { if (n == 1) { return 1; } else { return n * f(n - 1); } } }
-
邊界條件:到最後一個數的時候,程式執行到底。==>f(1)
-
前階段:當引數不到底時,不停的呼叫自身,直到底為止。==>直到f(1)為止
-
返回階段:n*(n-1)。從最大的數開始,一直遞迴到最後,得到結果後,一直不斷返回。
PS:小計算通過遞迴,過於大的計算,容易GG。遞迴過多,容易影響機器效能