# -*- coding: utf-8 -*-
# 递归的重点在于放弃,放弃理解和跟踪递归全程的企图,只理解递归两层之间的交接,以及递归的终结条件
def move(n, start, mid, end): # n:盘子,start起始区,mid中转区,end终点区
if n == 1:
print('move', start, '-->', end)
else:
move(n-1, start, end, mid) # 把除了最大的盘子之外的盘子借助end,从start移到mid
move(1, start, mid, end) # 将最大的盘子从start移到end
move(n-1, mid, start, end) # 将除了最大的盘子之外的盘子借助start,从mid移到end
move(3, 'A', 'B', 'C')