一題掌握SSS級遞歸算法之漢諾塔


經典算法每日一題之漢諾塔

之因此叫作寫爛的編程算法問題,是由於解法處處都是,隨便百度一下,遍地都是,web

這裏就不過度敘說了。算法

什麼是 漢諾塔

河內塔(又稱漢諾塔)問題,就是在一塊木板上有三個立柱,在柱1上放着三個圓盤,小的在上面,大的在下面(初始狀態)。讓被試將在柱1上的三個圓盤移到柱3上面(目標狀態)。條件是:每次只能移動任何一個柱子上面的一個圓盤,但大的圓盤不能放在小的圓盤上。通用問題解決者的解決過程便是手段—目的分析的策略。編程

解題思路

遞歸法windows

  1. 把A上面n-1個盤子移動到B上。微信

  2. 把A上最後一個移動到C;app

  3. 把B上n-1個移動到A上,再把B上最後一個移動到C;編輯器

如此循環2,3,步驟,直到把最後一個盤子移動到C上。學習

實現代碼
測試結果

漢諾塔能夠經過非遞歸算法解析,有興趣的讀者能夠嘗試下。測試






文章都是手打原創,天天最淺顯的介紹C語言、C++,windows知識,喜歡個人文章就關注一波吧,能夠看到最新更新和以前的文章哦。若是足下基礎比較差,不妨關注下,人人均可以學習的視頻教程,通俗易懂,深刻淺出,一次只講一個知識。不深奧,不須要鑽研,在公交、在地鐵、在廁所均可以觀看,隨時隨地漲姿式。flex

據說轉發文章

會給你帶來好運


微信號:coolmoying
今日頭條:C語言基礎
-掃碼關注我-



本文分享自微信公衆號 - C語言編程基礎(goodStudyCode)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索