首先贴代码.代码其实就是一个移植,思想很重要.递归
def move(n,a,buffer,c):移动
if(n==1):
print (a,"-->",c)
return
move(n-1,a,c,buffer)
move(1,a,buffer,c)
move(n-1,buffer,a,c)
move(3,'a','b','c')return
n,表示要移动的柱子数
a,表示源柱
buffer表示依赖柱
c,表示目标柱
首先判断除出递归的条件,只有一个是,直接将源柱A移到目标柱C
接下来总体判断: n个柱子时
顶层的n-1个柱子,从A借助C移到buffer
将A地底下的柱子移到C下
b上n-1个柱子借助A移到C上
最后完成整个过程