1.遞歸解決什麼問題
什麼是遞歸:
方法自己調用自己,每次調用傳入不同的變量(控制結束)
遞歸能解決什麼問題:
漢諾塔:五個盤,要想把最後一塊盤放到c塔,需要先移動四個盤到b塔;要把四個盤移動到b塔,需要先将上三個盤移動到c塔;要将上三個盤移動到c塔,需要先把上兩個盤移動到b塔;要将上兩個盤移動到b塔,需要先将最上面一個盤移動到c塔;(遞歸)
遞歸解決棧解決的問題-代碼更簡潔
2.遞歸執行機制1,列印問題
方法遞歸調用記憶體分析:
3.遞歸執行機制2,列印問題進一步思考
修改第2小節中的代碼,輸出結果如何?
隻輸出n=2,if else是一個整體,進了if方法體内,就不能再進else
4.遞歸執行機制3,階乘factorial問題
階乘factorial實作代碼
階乘factorial記憶體分析
5.遞歸執行機制4,遞歸的重要規則,五點
遞歸的重要規則,五點:
6.遞歸斐波那契fibonacci
題目:給出一個整數n,求出第n位的斐波那契數是多少
斐波那契第n位數的值,等于前兩位的和
main
遞歸斐波那契fibonacci實作思路及代碼
7.猴子吃桃
解決的要點在理清天數,和桃子數的關系,還有就是return
8.老鼠出迷宮1,使用數組建立迷宮地圖,輸出迷宮地圖
使用數組建立迷宮地圖
輸出迷宮地圖
9.老鼠出迷宮2
老鼠出迷宮思路分析:
找到傳回true,否則傳回false
map數組中各個值的不同含義,3 走過,但是走不通是死路
找路政策,下,右,上,左
0 和 2都表示可以走,隻需要一次判斷即可
10.老鼠出迷宮3,修改找路政策,檢視路徑是否變化
修改找路政策,檢視路徑是否變化
上,右,下,左
走2時,判斷為走不通(不走走過的路)
11.老鼠出迷宮4,測試回溯現象(這個回溯是在代碼那裡實作的)
測試回溯現象
思考:如何求出最短路徑
12.漢諾塔
如果有多個盤,可以看成兩個盤,最下面的盤和他上面的所有盤
13.八皇後
八皇後問題說明:
八皇後問題思路分析: