Java基礎-遞迴相關知識點和用法
阿新 • • 發佈:2018-12-09
遞迴
在方法中,呼叫方法本身的現象叫遞迴
注意事項
1、遞迴一定要有出口,否則就是死遞迴
2、遞迴對次數不能太多,否則容易記憶體溢位
3、構造方法不能遞迴使用
分析:
5! = 1 * 2 * 3 * 4 * 5
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1
使用遞迴思想求5的階乘
執行流程圖
兔子問題(斐波那契數列)
有一對兔子,從出生後的第三個月起,每個月都生一對小兔子,小兔子長到三個月後,每個月又生一對兔子,假如兔子不死,第二十個月兔子的對數是多少?
分析:
第一個月 : 1對
第二個月 : 1對
第三個月 : 2對
第四個月 : 3對
第五個月 : 5對
第六個月 : 8對
1,1,2,3,5,8,。。。。。。
規律:
1、從第三個月開始,每個月對對數,是前兩個月個數對和。
2、第一個月,和第二個月對對數是已知對,都是一對。
陣列實現:
變數的變化實現
假如相鄰兩個月的兔子數量是a,b
第一個相鄰的資料 a = 1,b = 1;
第二個相鄰的資料 a = 1,b = 2;
第三個相鄰的資料 a = 2,b = 3;
第四個相鄰的資料 a = 3,b = 5;
第五個相鄰的資料 a = 5,b = 8;
下一次的a是以前的b,下一次的b是以前的a+b;
遞迴實現
返回值型別 int
引數列表 int n
出口條件:第一個月是1,第二個月是1
規律:第三個開始是前兩個月的和
遞迴實現輸出指定目錄下java結尾的檔案的絕對路徑
需求:在控制檯輸出某目錄下java結尾的檔案的絕對路徑
思路:
1、封裝目錄
2、獲取該目錄下所有的檔案或資料夾的File類的物件陣列
3、遍歷陣列,判斷是檔案還是資料夾
4、如果是資料夾,回到第二步;如果是檔案,判斷是否是.java結尾,並輸出絕對路徑
遞迴刪除帶內容的目錄