Python打卡第九天
漢諾塔:
有三根頂針,在第一根頂針上放著若干個盤子,且小盤子在大盤子上面,現把這些盤子從第一根頂針上移動到第三根頂針上,且小盤子依舊在大盤子之上。在移動的過程中可以藉助第二根頂針,每次只能移動一個盤子,且小盤子要在大盤子上面,如何移動才能使所有盤子從第一根頂針到第三根頂針上。
分析:
採用迭代的方法,第64個可以考慮第63個如何實現,第63個可以考慮62個如何實現……如此反覆,最後遞迴至一個如何實現。因此可以將前n-1個放在中轉柱上,將剩下的一個放到目標柱子上
程式碼:
def hanoni(n, a, b, c):
if n == 1:
print(a, "->", c)
return
hanoni(n - 1, a, c, b)
hanoni(1, a, b, c)
hanoni(n - 1, b, a, c)
level = int(input("請輸入漢諾塔層數:"))
hanoni(level, 'a', 'b', 'c')
相關文章
- 【打卡學習python】-20200302Python
- 打卡打卡
- Python打卡第八天Python
- 第九天
- 資料結構與演算法python第九天資料結構演算法Python
- Python學習 day01打卡Python
- 小白學python第一天打卡Python
- python學習 day018打卡 反射Python反射
- 衝刺第九天
- 彙編第九天
- 打卡~
- 用Python來統計知識星球打卡作業Python
- 每日打卡
- 打卡7
- 打卡5
- 10天衝刺第九天
- 10日衝刺第九天
- OC學習之旅------第九天
- 踩點打卡
- [打卡]7.7日
- 字串打卡[1]字串
- JavaWeb學習筆記——第九天JavaWeb筆記
- Python實現企業微信上下班自動打卡程式Python
- 20240412打卡
- 20240513打卡
- 20240423打卡
- 20240328打卡
- 20240527打卡
- 20240517打卡
- 20240518打卡
- 3.8打卡
- 20240506打卡
- 20240410打卡
- 20240403打卡
- 20240509打卡
- 5.7打卡
- 20240507打卡
- 20240402打卡