i = 0
def move(n,a,b,c):
# 把变量i全局化,如果不全局化,只可访问读取不能进行操作修改
global i
if n==1:
i += 1
print('移动第',i,'次',a,'-->',c)
else:
# 1.把A柱上n-1个圆盘移动到B柱上
move(n-1,a,c,b) # 传的才是实际参数
# 2.把A柱上最大的移动到C柱子上
move(1,a,b,c)
# 3.把B柱子上n-1个圆盘移动到C柱子上
move(n-1,b,a,c)
move(4,'A','B','C')
输出结果:
移动第 1 次 A --> B
移动第 2 次 A --> C
移动第 3 次 B --> C
移动第 4 次 A --> B
移动第 5 次 C --> A
移动第 6 次 C --> B
移动第 7 次 A --> B
移动第 8 次 A --> C
移动第 9 次 B --> C
移动第 10 次 B --> A
移动第 11 次 C --> A
移动第 12 次 B --> C
移动第 13 次 A --> B
移动第 14 次 A --> C
移动第 15 次 B --> C