python汉诺塔代码

导读 汉诺塔问题是经典的递归问题之一。下面是使用 Python 实现汉诺塔问题的代码:```pythondef hanoi(n, source, target, auxiliary): ...

汉诺塔问题是经典的递归问题之一。下面是使用 Python 实现汉诺塔问题的代码:

```python

def hanoi(n, source, target, auxiliary):

if n > 0:

# 先将 n-1 个盘子从源柱子移动到辅助柱子(递归调用)

hanoi(n-1, source, auxiliary, target)

# 将剩下的一个盘子从源柱子移动到目标柱子

print('Move disk {} from {} to {}'.format(n, source, target))

# 再将辅助柱子上的盘子移动到目标柱子(递归调用)

hanoi(n-1, auxiliary, target, source)

# 测试代码

hanoi(3, 'A', 'C', 'B') # 源柱子为 A,目标柱子为 C,辅助柱子为 B

```

在上述代码中,我们定义了一个名为 `hanoi` 的函数,该函数接受四个参数:盘子的数量 `n`,源柱子 `source`,目标柱子 `target` 和辅助柱子 `auxiliary`。函数的主要逻辑是先将 `n-1` 个盘子从源柱子移动到辅助柱子(递归调用),然后将剩下的一个盘子从源柱子移动到目标柱子,最后再将辅助柱子上的盘子移动到目标柱子(递归调用)。这样就完成了汉诺塔问题的求解。在代码中,我们使用了 Python 的 print 函数来输出每一步的移动过程。

版权声明:本文由用户上传,如有侵权请联系删除!