採用遞歸實現九九乘法表

下面採用遞歸實現九九乘法表,這主要來自論壇上的一個帖子:

http://topic.csdn.net/u/20100918/12/840f7250-a300-455a-931f-9147a118ce15.html

 

 

 

解析:

 

1.遞歸調用就是一直做直到滿足條件後再反方向來做,這樣就先打印1*1=1 然後再1*2=2 2*2=4 一直到method(9)這樣子。

 

2. i開始是9,所以method1(i - 1); 會循環8次,最後i成爲1,然後執行System.out.print("1*1=1/t/n"); 。輸出後返回上一層,就是i=2的那層,這一層method1(i - 1); 已經執行過了,所以會執行它後邊的for循環,循環完了後再返回上一層,就是i=3的那一層,這一層method1(i - 1); 同樣也已經執行過了,所以會執行它後邊的for循環,循環完了後再返回上一層,一直到i=9;

 

3.遞歸就是一個不斷地入棧的過程,你從9*9=81,8*9,7*9………………一直壓入棧中到1*1。最後才pop出來(出棧),所以輸出地結果就是到過來的:1*1,……,7*9,8*9,9*9。

 

總結:其實遞歸的效率是比較低的,所以對於本題,建議採用for循環,就可以實現了,

如下:

或者

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章