头歌 汉诺塔的递归算法
时间: 2023-12-13 21:04:35 浏览: 151
汉诺塔的算法,有递归算法
汉诺塔问题是一个经典的递归问题,其规则如下:有三个柱子A、B、C,A柱子上有n个盘子,盘子大小不等,大的在下,小的在上。要求将A柱子上的盘子全部移到C柱子上,并且每次只能移动一个盘子,大盘子不能放在小盘子上面。请你介绍一下汉诺塔的递归算法。
以下是汉诺塔的递归算法实现:
```python
def hanoi(n, A, B, C):
if n == 1:
print("Move disk 1 from", A, "to", C)
return
hanoi(n-1, A, C, B)
print("Move disk", n, "from", A, "to", C)
hanoi(n-1, B, A, C)
```
其中,n表示盘子的数量,A、B、C分别表示三个柱子。当n等于1时,直接将盘子从A柱子移动到C柱子;当n大于1时,先将n-1个盘子从A柱子移动到B柱子,再将第n个盘子从A柱子移动到C柱子,最后将n-1个盘子从B柱子移动到C柱子。
阅读全文