樊塔代码
时间: 2023-07-03 19:23:16 浏览: 58
这里是樊塔问题的 Python 代码实现:
```python
def hanoi(n, source, target, auxiliary):
# 如果只有一个盘子,直接将其从源柱移动到目标柱
if n == 1:
print(f"Move disk 1 from {source} to {target}")
return
# 将 n-1 个盘子从源柱移动到辅助柱
hanoi(n-1, source, auxiliary, target)
# 将最大的盘子从源柱移动到目标柱
print(f"Move disk {n} from {source} to {target}")
# 将 n-1 个盘子从辅助柱移动到目标柱
hanoi(n-1, auxiliary, target, source)
# 测试
hanoi(3, 'A', 'C', 'B')
```
在这个示例代码中,我们定义了一个名为 `hanoi` 的函数,它接受三个参数:盘子的数量 `n`,源柱 `source`,目标柱 `target`,以及辅助柱 `auxiliary`。
当 `n` 为 1 时,直接将盘子从源柱移动到目标柱。当 `n` 大于 1 时,我们将 `n-1` 个盘子从源柱移动到辅助柱,然后将最大的盘子从源柱移动到目标柱,最后将 `n-1` 个盘子从辅助柱移动到目标柱。
在 `main` 函数中,我们调用 `hanoi` 函数来解决樊塔问题,并传入三个柱子的名称。这个示例代码展示了如何使用递归算法来解决樊塔问题。