Python解漢諾塔問題

2021-10-04 21:34:27 字數 633 閱讀 6134

一、什麼是漢諾塔問題

這個問題**於印度。有三個金剛石塔,第乙個從小到大摞著64片**圓盤。現在把圓盤按大小順序重新擺放在最後乙個塔上。並且規定,在小圓盤上不能放大圓盤,在三個塔之間一次只能移動乙個圓盤。

二、**實現

a = 'a'

b = 'b'

c = 'c'

def hanno(a,b,c,n):

if n == 1:

print("{}-->{}".format(a,c))

return none

if n == 2:

print("{}-->{}".format(a,b))

print("{}-->{}".format(a,c))

print("{}-->{}".format(b,c))

return none

hanno(a,c,b,n-1) #a->b 上半部分,從a移到b

print("{}-->{}".format(a,c)) #a->c 中間,從a移到c

hanno(b,a,c,n-1) #b->c 下半部分,從b移到c

hanno(a,b,c,4)

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)

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 ...