1. 程式人生 > 遊戲資訊 >在龍男攻略叫人男老婆這件事(三)(試閱)

在龍男攻略叫人男老婆這件事(三)(試閱)

遞迴:自己呼叫自己

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。遞迴過多,容易影響機器效能