函数递归——汉诺塔经典题型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数递归——汉诺塔经典题型相关的知识,希望对你有一定的参考价值。

理解汉诺塔游戏规则,有A,B,C座塔,将A塔上的圆盘移动到C塔上,当A塔只有一块圆盘时,直接移动到C塔,当A塔有N个圆盘时,需要将N-1个圆盘移动到B塔,然后将剩下的最底下圆盘移动到C。大盘不能压住小盘

汉诺塔游戏主要考虑到最底下圆盘的调用,每次的移动都假设到最底下圆盘。

 

其实到目前我还是不太明白

 

def move(n, x, y, z):
    if n==1:
        print (x,-->,z)
        return
    move(n-1,x,z,y)#将前n-1个盘子从x移动到y上
    move(1,x,y,z)#将最底下的最后一个盘子从x移动到z上
    move(n-1,y,x,z)#将y上的n-1个盘子移动到z上
move(10, A, B, C)

 

以上是关于函数递归——汉诺塔经典题型的主要内容,如果未能解决你的问题,请参考以下文章

Python入门之经典函数实例——第1关:递归函数 - 汉诺塔的魅力

Python入门之经典函数实例——第1关:递归函数 - 汉诺塔的魅力

递归经典--百练4147--汉诺塔问题

Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)

Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)

递归中两个经典的汉诺塔和青蛙跳台阶问题