def move(n,A,B,C):
if n==1: # 1个盘子,直接打印出移动动作
print(A,'--->',C)
else: # n > 1时,用抽象出的3步来移动
move(n-1, A, C, B) #step1. 把除了最大的盘子之外的盘子从A移到B
print(A,'--->',C) #step2. 把最大的盘子从A移到C
move(n-1, B, A, C) #step3. 把除了最大的盘子之外的盘子从B移到C
- 要从a到b 那c就是缓冲 move(n-1,a,c,b)
- 要从a到c 那b就是缓冲 move(1,a,b,c)
- 要从b到c 那a就是缓冲 move(n-1,b,a,c)