下面是一个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。如果是,则递归调用函数本身:
source
到auxiliary
)。source
到target
)的操作。auxiliary
到target
)。最后,我们调用hanoi
函数来测试代码,并将source
设置为"A",target
设置为"C",auxiliary
设置为"B"。