把n个盘子从A移动到C,相当于把n-1个盘子从A移动到B,再把A最底下的那个盘子移动到C,最后再把n-1个盘子从B移动到C,n-1个盘子继续用递归移动。

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)
# 调用
hanoi(3, 'A', 'B', 'C')
参考:https://www.zhihu.com/question/24385418

博客介绍了使用递归算法解决汉诺塔问题,将n个盘子从A移动到C,可先把n - 1个盘子从A移到B,再将A最底下盘子移到C,最后把n - 1个盘子从B移到C,n - 1个盘子继续递归移动。

406

被折叠的 条评论
为什么被折叠?



