汉罗塔python代码递归
时间: 2024-11-08 15:13:12 浏览: 6
C语言实现汉罗塔可视化递归,详细注释,exe程序可直接运行,98分程序设计!
汉诺塔(Hanoi Tower)是一个经典的递归问题,它涉及三个柱子和一些大小不同的圆盘。游戏的目标是从第一个柱子上将所有盘子移动到第三个柱子,但每次只能移动一个盘子,并且大盘子不能放在小盘子上面。以下是使用Python实现汉诺塔问题的递归版本:
```python
def hanoi(n, source, auxiliary, target):
if n > 0:
# 将n - 1个盘子从源移到辅助柱子
hanoi(n - 1, source, target, auxiliary)
# 将最大的盘子从源柱子移动到目标柱子
print(f"Move disk {n} from {source} to {target}")
# 最后,将n - 1个盘子从辅助柱子移到目标柱子
hanoi(n - 1, auxiliary, source, target)
# 调用函数,开始游戏
hanoi(3, 'A', 'B', 'C') # 假设'A'是起始柱子,'B'是辅助柱子,'C'是目标柱子
```
在这个代码中,`n`表示盘子的数量,`source`、`auxiliary`和`target`分别代表起始柱子、辅助柱子和目标柱子。当`n = 0`时,递归结束。
阅读全文