Python解漢諾塔問題

一、什麼是漢諾塔問題

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章