Java 遞歸重難點分析詳解與練習

遞歸是什麼

就是一個方法在執行的時候,自己調用自己。

遞歸的要求:
1 有一個趨近於終止的條件
2 實現遞歸要去推導出一個遞推公式

遞歸就是遞下去,歸上來。求 5 的階乘,代碼舉例:

public static int fact(int n){
    if(n == 1){
        return n;
    }
    return n*fact(n - 1);
}
public static void main(String[] args) {
    int n = 5;
    int ret = fact(n);
    System.out.println(ret);
}

在這裡插入圖片描述

這裡的終止條件就是 n 等於 1 時,返回 1 就停止遞歸瞭。否則一直遞歸下去會造成棧區的溢出。

分析遞歸的過程

這裡就分析上面這個代碼的遞歸過程。

在這裡插入圖片描述

如上圖,這就是上面這段遞歸代碼的遞歸過程,先傳入 5 不符合 if 條件。所以繼續遞歸,直到遞歸到 n == 1 的時候,此時不再遞歸,而是返回 1 .至此,遞下去結束。開始歸回來,歸回來的時候,最後返回 1 ,然後一路返回,直到最後一個 return 結束,也就是返回 120 。

遞歸練習

按順序打印一個數的每一位

例如:1234 打印出 1 2 3 4 代碼示例:

public static void print1(int n){
    if(n == 0){
        return;
    }
    print1(n / 10);
    System.out.print(n % 10+" ");
}
public static void main(String[] args) {
    int n = 1234;
    print1(n);
}

在這裡插入圖片描述

整個遞歸過程如下所示:

在這裡插入圖片描述

到此這篇關於Java 遞歸重難點分析詳解的文章就介紹到這瞭,更多相關Java 遞歸內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: