如何使用递归解决汉诺塔问题
1、首先思考此题解决思路
此处以有十个盘子为例,分析解题思路
(1)将X上的前9个盘子借助Z从X移动到Y上
(2)将最底下的第10个盘子从X移动到Z上
(3)将Y上的9个盘子借助X从Y移动到Z上
def hanoi(n,x,y,z):
if n == 1:
print(x, '-->', z)
else:
hanoi(n-1, x, z, y) #将前n-1个盘子借助z从x移动到y
print(x, '-->', z) #将最底下的盘子移动到z
hanoi(n-1, y, x, z) #将前n-1个盘子借助x从y移动到z
n = int(input('输入汉诺塔的层数'))
hanoi(n, 'X', 'Y', 'Z')
输出以4层为例