算法筆記——【遞歸】漢諾塔問題

算法:

    當只有一個盤子的時候,只需要從將A塔上的一個盤子移到C塔上。

    當A塔上有兩個盤子是,先將A塔上的1號盤子(編號從上到下)移動到B塔上,再將A塔上的2號盤子移動的C塔上,最後將B塔上的小盤子移動到C塔上。

    當A塔上有3個盤子時,先將A塔上編號1至2的盤子(共2個)移動到B塔上(需藉助C塔),然後將A塔上的3號最大的盤子移動到C塔,最後將B塔上的兩個盤子藉助A塔移動到C塔上。

    當A塔上有n個盤子是,先將A塔上編號1至n-1的盤子(共n-1個)移動到B塔上(藉助C塔),然後將A塔上最大的n號盤子移動到C塔上,最後將B塔上的n-1個盤子藉助A塔移動到C塔上。

    綜上所述,除了只有一個盤子時不需要藉助其他塔外,其餘情況均一樣(只是事件的複雜程度不一樣)。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章