重学数据结构与算法——汉诺塔

def hanoi(n, a, b, c):
    if n > 0:
        hanoi(n-1, a, c, b)
        print('moving from %s to %s'%(a, c))
        hanoi(n-1, b, a, c)
hanoi(3, 'A', 'B', 'C')

递归总体来说,要看整体,不能揪住细节不放,也就是说要按照不失一般性的思路来考虑。汉诺塔可以总结出3个步骤,(1)a的最上层从c到b;(2)a的最上层到c;(3)b的最上层到c。
递归问题可以总结出递归公式,这个递归公式在每一步都适用,这就是为什么要看整体,而不看具体每一步怎么做。我之前会一步一步的演示,生怕某一步走错了。
注意递归问题是从外到里还是从里到外(画个图就看出来了)
注意:递归需要有结束条件

猜你喜欢

转载自blog.csdn.net/weixin_44843629/article/details/113747785
今日推荐