|
发表于 2023-11-24 09:26:25
|
显示全部楼层
将盘子 1 从 A 移动到 C
将盘子 2 从 A 移动到 B
将盘子 1 从 C 移动到 B
将盘子 3 从 A 移动到 C
将盘子 1 从 B 移动到 A
将盘子 2 从 B 移动到 C
将盘子 1 从 A 移动到 C
这个结果是正确的,它展示了将 n 个盘子从 A 移动到 C 的步骤。在每一步中,我们都会移动一个盘子到目标柱子,并且保证辅助柱子始终为空或满足递归调用的条件,即保证盘子的顺序不会出错。
如果你想以列表的形式得到每一步的结果,可以稍作修改代码如下:
def hanoi(n, x, y, z, result):
if n > 0:
hanoi(n-1, x, z, y, result)
result.append((n, x, y))
hanoi(n-1, z, y, x, result)
n = int(input('输入层数:'))
result = []
hanoi(n, 'A', 'C', 'B', result)
for step in result:
print(f"将盘子 {step[0]} 从 {step[1]} 移动到 {step[2]}")
这样,结果就会以列表的形式存储在 result 变量中,然后依次打印出来。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|