首先貼代碼.代碼其實就是一個移植,思想很重要.遞歸
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上
最後完成整個過程