标签:目的 开始 参数 问题 直接 else 调用 第一个 中转
假设共n个盘子
当n=n时:
把A上的n-1个盘子,借助于C,移动到B上去,调用递归(A-C->B)rsc=A, trans=C, dst=B
把A上的最大一个盘子,移动到C上(A->C)rsc=A, dst=C
把B上n-1个盘子,借助于A,移动到C上, 调用递归(B-A->C)rsc=B, trans=A, dst=C
每次都是先将其他圆盘移到辅助柱子上,再将最底下的移到C,然后再把原先柱子作为辅助柱子,重复
def move(n, a, b, c):
'''
汉诺塔的递归实现
n:代表几个盘子
a:代表第一个塔,rsc
b:代表第二个塔,trans
c:代表第三个塔, dst
'''
if n == 1:
print(a, '=>', c)
else:
move(n-1, a, c, b)
print(a, '=>', c)
move(n-1, b, a, c)
标签:目的 开始 参数 问题 直接 else 调用 第一个 中转
原文地址:https://www.cnblogs.com/TuerLueur/p/9514983.html