首页 > 代码库 > 函数递归——汉诺塔经典题型

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

理解汉诺塔游戏规则,有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)

 

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