Python解决汉诺塔问题——简单递归完成

然仔 2019-12-25 2685

汉诺塔游戏的基本逻辑不难,其实就是先把n-1个盘子挪到第二个柱子上,然后再把第n个盘子挪到第三个柱子上,代码如下。

def hanoi(n,x,y,z):
    if n==1:
        print(x,'移动到',z)
    else:
        hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上
        print(x,'移动到',z)#将最底下的最后一个盘子从x移动到z上
        hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n = int(input('请输入汉诺塔的层数:'))
hanoi(n,'一','二','三')


最新回复 (1)
发新帖