美文网首页
python:用递归函数解决汉诺塔问题

python:用递归函数解决汉诺塔问题

作者: 红尘_漫步 | 来源:发表于2019-06-18 21:44 被阅读0次

汉诺塔问题源于印度一个古老传说的益智玩具。变成数据问题就是:从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,但是在三根柱子之间一次只能移动一个圆盘,小圆盘上不能放大圆盘,求移动的步骤和移动的次数。

这是程序设计中经典的递归问题,网上查了一下,可以用很多程序语言实现。

其中python的代码最少,但是却没看懂,先记下来,看看有没有大神能解释一下。

def move (n, a, b, c):

    if n ==1:

        print(a, '-->', c)

    else:

        move (n -1, a, c, b)

        move (a, '-->', c)

        move (n -1, b, a, c)

# 调用

move(3, 'A', 'B', 'C')

执行了一遍,结果是对的。这么复杂的问题就这么几行代码解决了,神奇。

相关文章

网友评论

      本文标题:python:用递归函数解决汉诺塔问题

      本文链接:https://www.haomeiwen.com/subject/kwoqqctx.html