共计 624 个字符,预计需要花费 2 分钟才能阅读完成。
下面是一个 Python 的汉诺塔问题的递归解决方案的代码示例:
def hanoi(n, source, target, auxiliary):
if n > 0:
# 将 n-1 个盘子从源柱移动到辅助柱
hanoi(n-1, source, auxiliary, target)
# 将最底下的盘子从源柱移动到目标柱
print(f"Move disk {n} from {source} to {target}")
# 将 n-1 个盘子从辅助柱移动到目标柱
hanoi(n-1, auxiliary, target, source)
# 测试
hanoi(3, 'A', 'C', 'B')
这段代码中,hanoi
函数接受四个参数:整数 n
表示盘子的数量,字符串 source
表示源柱,字符串 target
表示目标柱,字符串 auxiliary
表示辅助柱。函数使用递归的方式解决汉诺塔问题。
在 hanoi
函数中,首先检查 n
是否大于 0。如果是,则递归调用函数本身:
- 第一次递归调用将前 n-1 个盘子从源柱移动到辅助柱 (
source
到auxiliary
)。 - 打印移动最底下的盘子从源柱移动到目标柱 (
source
到target
)的操作。 - 第二次递归调用将前 n-1 个盘子从辅助柱移动到目标柱 (
auxiliary
到target
)。
最后,我们调用 hanoi
函数来测试代码,并将 source
设置为 "A",target
设置为 "C",auxiliary
设置为 "B"。
丸趣 TV 网 – 提供最优质的资源集合!
正文完