Python3实现汉诺塔问题

汉诺塔问题之前困扰了好久,这次看了一些视频和博客大概有了思路,简单理解就是把需要移动的盘子一层一层剥离,先把除了最后一个盘子移到中转杆b,最后只有一个盘子的时候将其直接移动到目的c杆上,然后向上回归将余下的盘子移动到c杆。

def hanoi(n, a, b, c):
    if n==1:
        print(a, '-->', c)
    else:
        hanio(n-1, a, c, b) #先把n-1个盘子移到b上
        print(a, '-->', c)  #将最下面的盘子移到c上
        hanio(n-1, b, a, c) #将b上的盘子移到c上

hanoi(3, 'a', 'b', 'c')
posted @ 2019-01-03 13:49  予或  阅读(30)  评论(0编辑  收藏  举报