python递归:汉诺塔问题最简洁的算法

在这里插入图片描述
使用python的递归做一个简洁的解法:

def hanoi(src, des, mid, n):
    global steps
    if n == 1:
        steps += 1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))
    else:
        hanoi(src, mid, des, n-1)
        steps += 1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))
        hanoi(mid, des, src, n-1)


if __name__ == "__main__":

    steps = 0

    N = eval(input())
    hanoi("A", "C", "B", N)
    

效果如图:
在这里插入图片描述

发布了58 篇原创文章 · 获赞 117 · 访问量 6820

猜你喜欢

转载自blog.csdn.net/weixin_44936889/article/details/103706728