python实现汉诺塔程序
时间: 2023-11-20 16:05:53 浏览: 86
以下是Python实现汉诺塔程序的代码:
```
def hanoi(n, source, target, auxiliary):
if n == 0:
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')
```
运行程序后,会要求输入盘子的数量,然后程序会输出每一步的操作,最终将所有盘子从A柱移动到C柱。
相关问题
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 = int(input('请输入汉诺塔的层数:'))
hanoi(n, 'A', 'B', 'C')
```
运行程序后,输入汉诺塔的层数,程序将会输出汉诺塔移动的步骤。
用python实现汉诺塔
汉诺塔问题是一个经典的递归问题,可以用 Python 程序来实现。以下是一个示例代码:
```python
def hanoi(n, source, target, auxiliary):
if n > 0:
# 将 n-1 个盘子从源柱移动到辅助柱
hanoi(n-1, source, auxiliary, target)
# 将最后一个盘子从源柱移动到目标柱
print("Move disk", n, "from", source, "to", target)
# 将 n-1 个盘子从辅助柱移动到目标柱
hanoi(n-1, auxiliary, target, source)
# 测试代码
hanoi(3, "A", "C", "B")
```
这个程序可以将 3 个盘子从 A 柱移动到 C 柱,其中 B 柱作为辅助柱。输出结果如下:
```
Move disk 1 from A to C
Move disk 2 from A to B
Move disk 1 from C to B
Move disk 3 from A to C
Move disk 1 from B to A
Move disk 2 from B to C
Move disk 1 from A to C
```
注意,这个程序只是一个示例,实际上可以根据需要修改参数和输出方式。
阅读全文