def hanoi(n, A, B, C):#将n个圆盘从A经过B移到C
if n > 0:#圆盘数大于0
hanoi(n-1, A, C, B)#将n-1个圆盘从A经过C移到B
print('{}-{}'.format(A, C))#将A上最底部的圆盘移到C
hanoi(n-1,B, A, C)#将n-1个圆盘从B经过A移到C
hanoi(3,'A','B','C')
#输出结果
A-C
A-B
C-B
A-C
B-A
B-C
A-C
def move(n,a,b,c): #n为圆盘数,a代表初始位圆柱,b代表过渡位圆柱,c代表目标位圆柱
if n==1:
print(a,'-->',c)
else:
move(n-1,a,c,b) #将初始位的n-1个圆盘移动到过渡位,此时初始位为a,上一级函数的过渡位b即为本级的目标位,上级的目标位c为本级的过渡位
print(a,'-->',c)
move(n-1,b,a,c) #将过渡位的n-1个圆盘移动到目标位,此时初始位为b,上一级函数的目标位c即为本级的目标位,上级的初始位a为本级的过渡位