递归求解汉诺塔
•对于游戏的玩法,我们可以简单分解为三个步骤
–将前63个盘子从X移动到Y上。
–将最底下的第64个盘子从X移动到Z上。
–将Y上的63个盘子移动到Z上。
•问题一:将X上的63个盘子借助Z移到Y上;
•问题二:将Y上的63个盘子借助X移到Z上。
•对于游戏的玩法,我们可以简单分解为三个步骤
–将前63个盘子从X移动到Y上。
–将最底下的第64个盘子从X移动到Z上。
–将Y上的63个盘子移动到Z上。
•问题一:将X上的63个盘子借助Z移到Y上;
•问题二:将Y上的63个盘子借助X移到Z上。
实例:
1 def hanoi(n, x, y, z): 2 if n == 1: 3 print(x, ' --> ', z) 4 else: 5 hanoi(n-1, x, z, y) # 将前n-1个盘子从x移动到y上 6 print(x, ' --> ', z) # 将最底下的最后一个盘子从x移动到z上 7 hanoi(n-1, y, x, z) # 将y上的n-1个盘子移动到z上 8 9 n = int(input('请输入汉诺塔的层数:')) 10 hanoi(n, 'X', 'Y', 'Z')标签:移到,Python,hanoi,024,63,汉诺塔,盘子,移动 From: https://www.cnblogs.com/ybqjymy/p/17650340.html