漢諾塔問題 遞歸算法(參考答案)是不是這么個意思?def move(n, a, b, c): ? #move函數幾個形式參數:第一個表示需要移動的圓盤數,第二個(不一定是a)表示準備移走的柱子,第三個表示過渡柱子,第四個參數表示目標柱子。? ? ?if n == 1:? ? ? ? ? ? print (a,'-->',c) #這其實是只有一個圓盤需要從A到C的情況。所有遞歸,最終都是走到這一步。? ? ? ? ? ? return #這是結束遞歸,省略了None。沒有這句的話,遞歸沒辦法結束。? ? ?move(n-1,a,c,b) #將A柱的n-1個盤移到B柱,這里毫無爭議。注意形參順序變化了。? ? ?print ?a,'-->',c ?#這句話才是第一個柱子的第n個圓盤移動到目標柱子。? ? ?move(n-1, b,?a, c)) #過渡柱子B上(n-1)個圓盤B遞歸移動到目標柱子C
添加回答
舉報
0/150
提交
取消