先将问题简化为:三根柱子编号分别为A,B,C。初始时,有n片圆盘按从小到大叠放在A柱上,从上到下圆盘编号分别为1,2,…,n。现需将将A柱的n片圆盘按上述规则移到C柱上,请输出每步移动过程的相关信息。python代码
时间: 2024-03-27 12:36:42 浏览: 157
汉诺塔(hanoi)代码(输出移动过程)
好的,这是一个经典的汉诺塔问题,下面是Python代码实现:
```python
def move(n, a, b, c):
if n == 1:
print('move', a, '->', c)
else:
move(n-1, a, c, b)
print('move', a, '->', c)
move(n-1, b, a, c)
n = int(input('请输入汉诺塔的层数:'))
move(n, 'A', 'B', 'C')
```
其中,move函数接收四个参数,分别是n表示当前要移动的圆盘数,a表示起始柱子,b表示中间柱子,c表示目标柱子。如果n等于1,那么只需要将第一个圆盘从起始柱子移动到目标柱子即可,否则需要先将前n-1个圆盘从起始柱子经过中间柱子移动到目标柱子上,然后再将最后一个圆盘从起始柱子移动到目标柱子上。
阅读全文