请用Python编写一个汉诺塔的移动函数,采用递归方法解决这个难题,要求输入汉诺塔的层数,输出整个移动流程。
时间: 2024-05-06 20:21:51 浏览: 92
Python递归实现汉诺塔算法示例
5星 · 资源好评率100%
好的,我可以帮您编写一个汉诺塔的移动函数。以下是Python代码:
```python
def hanoi(n, source, target, auxiliary):
if n == 1:
print("Move disk 1 from", source, "to", target)
return
hanoi(n-1, source, auxiliary, target)
print("Move disk", n, "from", source, "to", target)
hanoi(n-1, auxiliary, target, source)
n = int(input("Enter the number of disks: "))
hanoi(n, 'A', 'C', 'B')
```
在这个递归函数中,`n` 是汉诺塔的层数,`source` 是起始柱子,`target` 是目标柱子,`auxiliary` 是辅助柱子。当 `n=1` 时,直接将盘子从起始柱子移动到目标柱子。当 `n>1` 时,先将 `n-1` 层的盘子从起始柱子移动到辅助柱子,然后将第 `n` 层的盘子从起始柱子移动到目标柱子,最后再将 `n-1` 层的盘子从辅助柱子移动到目标柱子。整个移动流程会在控制台输出。
阅读全文