编写函数,以递归的形式解决汉罗塔问题
时间: 2023-06-24 21:08:01 浏览: 85
Java实验汉罗塔共54页.pdf.zip
汉罗塔问题是一个经典的递归问题,可以通过递归算法来解决。下面是一个使用Python编写的汉罗塔问题的递归函数:
```python
def hanoi(n, source, target, auxiliary):
if n == 1:
print("Move disk 1 from source", source, "to target", target)
return
hanoi(n-1, source, auxiliary, target)
print("Move disk", n, "from source", source, "to target", target)
hanoi(n-1, auxiliary, target, source)
```
其中,n表示盘子的数量,source表示源柱子,target表示目标柱子,auxiliary表示辅助柱子。
当n为1时,只需将一个盘子从源柱子移动到目标柱子即可。
当n大于1时,需要先将n-1个盘子从源柱子移动到辅助柱子,然后将最后一个盘子从源柱子移动到目标柱子,最后再将n-1个盘子从辅助柱子移动到目标柱子。
例如,如果要将3个盘子从A柱子移动到C柱子,可以调用函数hanoi(3, 'A', 'C', 'B'),其中B为辅助柱子。
阅读全文