漢諾塔問題 遞歸算法(參考答案)是不是這么個意思?def move(n, a, b, c): ? #move函數(shù)幾個形式參數(shù):第一個表示需要移動的圓盤數(shù),第二個(不一定是a)表示準(zhǔn)備移走的柱子,第三個表示過渡柱子,第四個參數(shù)表示目標(biāo)柱子。? ? ?if n == 1:? ? ? ? ? ? print (a,'-->',c) #這其實是只有一個圓盤需要從A到C的情況。所有遞歸,最終都是走到這一步。? ? ? ? ? ? return #這是結(jié)束遞歸,省略了None。沒有這句的話,遞歸沒辦法結(jié)束。? ? ?move(n-1,a,c,b) #將A柱的n-1個盤移到B柱,這里毫無爭議。注意形參順序變化了。? ? ?print ?a,'-->',c ?#這句話才是第一個柱子的第n個圓盤移動到目標(biāo)柱子。? ? ?move(n-1, b,?a, c)) #過渡柱子B上(n-1)個圓盤B遞歸移動到目標(biāo)柱子C
漢諾塔 遞歸問題 算法是不是這樣的?
碼農(nóng)的自我修養(yǎng)
2015-12-14 22:11:30