python 汉诺塔递归算法?

windows 10, python3.7

直接上代码

# 转移方法move n:需要转移数量 a,b,c:柱名
def move(n, a, b, c):
    # 转移当前圆盘
    if n == 1:
        print(a, '-->', c)
    else:
        # 将除了最大的圆盘的剩余圆盘转移到b柱
        move(n - 1, a, c, b)
        # 转移最大的圆盘到c柱
        move(1, a, b, c)
        # 将b剩余圆盘转移到c
        move(n - 1, b, a, c)
知乎大神画的流程图

参考知乎:python中的汉诺塔递归算法的具体运算过程是怎样的?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 汉诺塔含义: 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石...
    kevin282阅读 3,593评论 0 0
  • 记得小时候经常讲的一个故事:从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事...
    IT可乐阅读 3,335评论 0 3
  • 笔记更新于2019年11月10日,摘要:函数的定义与调用;函数的参数;默认参数;可变参数;关键字参数;命名关键字参...
    三贝_阅读 3,547评论 0 0
  • 在探讨完代码走查的“姿势”和“周边”后,终于要和如何落地代码走查见面了,如果说以前聊的还只是一些理论、招式的话,现...
    hxfirefox阅读 5,004评论 0 1
  • 参考 那些年,我们一起写过的“单例模式”这篇文章对单例模式讲的非常清楚,从如何使用讲到如何选择,讨论了各种会导致单...
    chauI阅读 1,813评论 0 0