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!