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

[亡魂溺海] 提交于 2019-12-26 09:51:40

在这里插入图片描述
使用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)
    

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!