n階漢諾塔的遞迴演算法

2021-08-13 22:11:49 字數 353 閱讀 1842

c語言編寫的一小段**。

#include

void hanoi(int n,char a,char b,char c);

int main()

void hanoi(int n,char a,char b,char c)

}執行結果(環境為codeblocks)

演算法分析:

(1)先考慮乙個盤子的情況,再考慮2個盤子的情況,然後推廣到多個盤子

(2)多個盤子時把除了最下面的盤子之外的所有盤子當做是乙個整體,這樣就和2個盤子的時候的情況一樣。(這樣比較好想)

(3)遞迴演算法實現記好了,遞迴的思路很簡單,應該很容易想到,上面的**只是乙個小小的例子應該容易看懂。

漢諾塔 遞迴演算法

個人覺得漢諾塔這個遞迴演算法比電子老鼠的難了一些,不過一旦理解了也還是可以的,其實網上也有很多 可以直接參考。記得大一開始時就做過漢諾塔的習題,但是那時 寫得很長很長,也是不理解遞迴的結果。現在想起來漢諾塔的演算法就3個步驟 第一,把a上的n 1個盤通過c移動到b。第二,把a上的最下面的盤移到c。第...

漢諾塔遞迴演算法

大學的時候專業課程很差,指導大二學習演算法設計的時候,發現專業課裡比較有趣的一門。專心學習了一學期 最近在學習python發現了乙個遞迴演算法很迷茫,遂研究了一下。簡單來說明一下 首先漢諾塔的規則是1 每次移動一塊 2 小木塊只能放在大木塊上 3 將所有木塊從a柱子移動c柱子木塊上 用幾個變數和常量...

C語言 N階漢諾塔問題的遞迴實現

遞迴實現模擬漢諾塔 include define ok 1 define error 0 define true 1 define false 0 define order 3 漢諾塔階數 typedef int status 函式執行狀態 typedef structtowerfoot void ...