漢諾塔問題(python)

2021-10-13 10:45:10 字數 852 閱讀 7402

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桿上,並仍保持原有順序疊好。操作規則 每次只能移動乙個盤子,並且在移動過程中三根桿上都始終保持 在...