Python实现汉诺塔
时间: 2023-11-05 18:00:51 浏览: 111
python实现汉诺塔算法
5星 · 资源好评率100%
汉诺塔是经典的递归算法问题,下面是Python实现汉诺塔的代码:
```python
def hanoi(n, a, b, c):
if n > 0:
hanoi(n-1, a, c, b)
print('move disk %d from %s to %s' % (n, a, c))
hanoi(n-1, b, a, c)
hanoi(3, 'A', 'B', 'C')
```
代码中,hanoi函数的四个参数分别表示盘子的数量、起始柱子、中间柱子和目标柱子。在函数内部,先递归将n-1个盘子从起始柱子移动到中间柱子,然后将第n个盘子从起始柱子移动到目标柱子,最后再递归将n-1个盘子从中间柱子移动到目标柱子。
在这个例子中,我们假设有三个柱子,分别用A、B、C表示。要将三个盘子从A柱子移动到C柱子,按照规则,必须先将前两个盘子从A柱子移动到B柱子,然后将第三个盘子从A柱子移动到C柱子,最后再将前两个盘子从B柱子移动到C柱子。运行上述代码,输出的结果如下:
```
move disk 1 from A to C
move disk 2 from A to B
move disk 1 from C to B
move disk 3 from A to C
move disk 1 from B to A
move disk 2 from B to C
move disk 1 from A to C
```
可以看到,按照规则,所有盘子都被移动到了目标柱子。
阅读全文