python汉诺塔问题的代码执行过程
时间: 2023-11-21 10:56:54 浏览: 97
汉诺塔问题是一个经典的递归问题,其代码执行过程如下所示:
```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)
hanoi(3, 'A', 'B', 'C')
```
执行过程如下:
1. 首先调用`hanoi(3, 'A', 'B', 'C')`,n不等于1,所以执行`hanoi(n-1, A, C, B)`,即`hanoi(2, 'A', 'C', 'B')`。
2. 调用`hanoi(2, 'A', 'C', 'B')`,n不等于1,所以执行`hanoi(n-1, A, C, B)`,即`hanoi(1, 'A', 'B', 'C')`。
3. 调用`hanoi(1, 'A', 'B', 'C')`,n等于1,输出"Move disk 1 from A to C"。
4. 返回到`hanoi(2, 'A', 'C', 'B')`,输出"Move disk 2 from A to B"。
5. 执行`hanoi(n-1, B, A, C)`,即`hanoi(1, 'B', 'C', 'A')`。
6. 调用`hanoi(1, 'B', 'C', 'A')`,n等于1,输出"Move disk 1 from B to C"。
7. 返回到`hanoi(2, 'A', 'C', 'B')`,输出"Move disk 3 from A to C"。
8. 执行完毕。
阅读全文