汉诺塔

2018-04-02  本文已影响0人  小赤焰

开始

在廖大神的博客上学习python。看到递归函数这块,大神给了一个课后作业,写出汉诺塔的算法实现。

过程

以前学c学过递归,汉诺塔也略有所闻。可是真要我写,实在不会,度娘教了我老半天,还是未能理解其中的真谛。都想放弃了,无意间看到 知乎上的回答 瞬间算法领悟真谛。

总结

其中的点在于 不要去跟踪每一步是怎么移动的,要用宏观的角度去考虑问题。要达到目的:

这就是汉诺塔问题的实现方法。永远只有三步。

def move(n, a, b, c):
    if n == 1:
        print(a, '-->', c)
    else:
        move(n-1, a, c, b)
        print(a, '-->', c)
        move(n-1, b, a, c)
上一篇 下一篇

猜你喜欢

热点阅读