把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