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)

 

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