def
hanoi
(n, a, b, c)
:#將n個圓盤從a經過b移到c
if n >0:
#圓盤數大於0
hanoi(n-
1, a, c, b)
#將n-1個圓盤從a經過c移到b
print
('{}-{}'
.format
(a, c)
)#將a上最底部的圓盤移到c
hanoi(n-
1,b, a, c)
#將n-1個圓盤從b經過a移到c
hanoi(3,
'a',
'b',
'c')
#輸出結果
a-ca-b
c-ba-c
b-ab-c
a-c
def
move
(n,a,b,c)
:#n為圓盤數,a代表初始位圓柱,b代表過渡位圓柱,c代表目標位圓柱
if n==1:
print
(a,'-->'
,c)else
: move(n-
1,a,c,b)
#將初始位的n-1個圓盤移動到過渡位,此時初始位為a,上一級函式的過渡位b即為本級的目標位,上級的目標位c為本級的過渡位
print
(a,'-->'
,c)
move(n-
1,b,a,c)
#將過渡位的n-1個圓盤移動到目標位,此時初始位為b,上一級函式的目標位c即為本級的目標位,上級的初始位a為本級的過渡位
python 漢諾塔 Python漢諾塔
import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...
python 漢諾塔問題
最近被漢諾塔的python 遞迴給迷暈,本想搞個程式除錯,但sublimetext用的不是很熟,參考了很多大佬的博文,需要總結下以防往後忘記 關於理解 流程,其實主要關注兩點 1 形參實參注意別搞混了 2 函式呼叫後都是要返回的,從哪個入口進去執行最後執行完程式是要返回回原來的入口,再執行時要注意開...
python 漢諾塔問題
相傳在古印度聖廟中,有一種被稱為漢諾塔 hanoi 的遊戲。該遊戲是在一塊銅板裝置上,有三根杆 編號a b c 在a杆自下而上 由大到小按順序放置64個金盤 如下圖 遊戲的目標 把a桿上的金盤全部移到c桿上,並仍保持原有順序疊好。操作規則 每次只能移動乙個盤子,並且在移動過程中三根桿上都始終保持 在...