一、什麼是漢諾塔問題
這個問題來源於印度。有三個金剛石塔,第一個從小到大摞着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)