close
一直懷疑網路上那些河內塔的 recursive 那麼難懂 , 就算程式寫出來了 ,
是否真的表示真的完全了解這短短三行核心的真正精神?!
今天看到不同的解法,超簡單 :
N 是盤子的個數 A:起始柱 B:輔助柱 C:目標柱
N 如果是奇數 , 那麼最上面那個稱為 "奇數盤" , 次一個為 "偶數盤" 以此類推
N 如果是偶數 , 那麼最上面那個稱為 "偶數盤" , 次一個為 "奇數盤" 以此類推
奇數盤移動順序必定是: A->C->B->A
偶數盤移動順序必定是: A->B->C->A
只要 注意 "同一個盤子不能連續移動兩次" 以及 "大的盤子不能放在小的盤子上頭"
要移動哪個盤子就很容易判斷 , 該盤子是 "偶數盤" 或是 "奇數盤" 去移動該盤 .
就這樣簡單....比遞迴好懂太多了 !!!!
全站熱搜
留言列表