遞迴二字顧名思義就是:遞過去,歸回來、所以我索性叫它做有借有還吧。
下面的例子由c而來:
public class main
public static void fun(int n) }
輸出的結果如下:
1-lexe:1
1-lexe:2
1-lexe:3
2-lexe:3
2-lexe:2
2-lexe:1
流程解讀:
首先,main() 呼叫了函式fun(1) ,於是fun(1)中形參 n 的值是 1, 故列印語句 #1 輸出了:1-lexe:1 。
然後,由於 n < 3 ,( 第 2 級 )的fun(n+1)被呼叫. 此時n+1=2,故列印語句 #1 輸出了:1-lexe:2。
然後,由於 n < 3 ,( 第 3 級 )的fun(n+1)被呼叫. 此時n+1=3,故列印語句 #1 輸出了:1-lexe:3。
由於此時,n=3 , 不再執行if語句。
然後執行 #2 語句 , 因為此時 n 的值為 3 , 故列印語句 #2 輸出了: 2-lexe:3 。 ---------------------------這時完成了乙個「遞過去」
此時函式呼叫完成
現在函式需要「歸回來」 , 回到最後一次呼叫函式的地方 , 即 n+1=2 的地方 , 故列印語句 #2 輸出了:2-lexe:2。
再返回上一級呼叫的地方 , n =1 的地方 , 故列印語句 #2 輸出了:2-lexe:1。-----------------------------完成了乙個「歸回來「
其實他的」歸回來「的切入點就是函式的呼叫點 ,獲取此處的引數值 , 一級一級的往外突圍就出來了。
下面附上乙個運算的遞迴流程:
java 遞迴詳解
example 求5的階乘。如下 public class test public static void main string args 上面的multiply是乙個階乘的例子。其實遞迴遞迴,從字面上解釋就是在方法本身呼叫自己的方法,或者間接呼叫 看上面的程式,拿multiply 5 來說 n ...
java 遞迴呼叫
遞迴呼叫是呼叫自身的函式,並傳給自身的相應的引數,這一運算過程是一層層的進行的,直到滿足一定條件時,才停止呼叫。遞迴函式的特點 1.函式要直接或間接呼叫自身。2.要有遞迴終止條件檢查,即遞迴終止的條件被滿足後,則不再呼叫自身函式。3.如果不滿足遞迴終止的條件,則呼叫涉及遞迴呼叫的表示式 在呼叫函式自...
java實現遞迴
遞迴,簡單的理解就是自己呼叫自己 主要分為兩部分,遞迴頭,遞迴的結束條件 遞迴體,自己呼叫自己的過程 1 最常見的就是階乘,比如求5的階乘,數學公式就是 5 4 3 2 1,public class digui else public static void main string args 2 求...