汉诺塔的移动可以用递归函数非常简单地实现。
请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:
def hannuota(n, x, y, z):
if n == 1:
print(x, '-->', z)
else:
hannuota(n-1, x, z, y) # 将前n-1的盘子从x移动到y上
print(x, '-->', z) # 将最底下的最后一个盘子从x移动到z上
hannuota(n-1, y, x, z) # 将y上的n-1的盘子移动到z上
if __name__ == '__main__':
n = int(input('请输入汉诺塔的层数:'))
hannuota(n, 'A', 'B', 'C')

这篇博客介绍了如何使用递归函数实现汉诺塔问题的解决方案。通过定义move(n,a,b,c)函数,将n个盘子从柱子A借助柱子B移动到柱子C,详细展示了移动过程。在主函数中,用户输入层数后,程序会打印出相应的移动步骤。
3296

被折叠的 条评论
为什么被折叠?



