python汉诺塔问题
时间: 2023-06-21 09:05:46 浏览: 117
python实现汉诺塔
汉诺塔问题是经典的递归问题,在Python中可以通过递归函数来解决。下面是一个简单的实现:
```python
def hanoi(n, A, B, C):
if n == 1:
print(A, "->", C)
else:
hanoi(n-1, A, C, B)
print(A, "->", C)
hanoi(n-1, B, A, C)
```
其中,n表示汉诺塔的层数,A、B、C分别表示三根柱子。实现递归函数时,首先判断n是否等于1,如果是,则直接将A柱子上的最后一个盘子移动到C柱子上;否则,将A柱子上的n-1个盘子通过C柱子移动到B柱子上,然后将A柱子上的最后一个盘子移动到C柱子上,最后将B柱子上的n-1个盘子通过A柱子移动到C柱子上。
调用函数时,传入汉诺塔的层数和三根柱子的名称即可:
```python
hanoi(3, "A", "B", "C")
```
输出结果为:
```
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
```
阅读全文