經典遞迴題 漢諾塔

2021-08-17 16:05:44 字數 482 閱讀 4651

漢諾塔遊戲:在這個遊戲中,我們(或者是以為神話中的祭司)有n個不用大小的盤

子和3根木樁。一開始,所有的盤子都按照大小順序套在第1根木樁上,最大的盤子

在底部,最小的盤子在頂部。我們的目的是把所有的盤子都移到第3根木樁上去,在

必要的時候可以借助第2根木樁。我們每次只能移動乙個盤子,但是不能把較大的盤

子放在較小的盤子的上面。

// 漢諾塔

#include

using

namespace

std;

// 得到另乙個字元

char getch(char a, char b)

// 將n個盤子從a移到b

void hnt(char a, char b, int n)

else

}int main()

經典遞迴漢諾塔

演算法 當只有乙個盤子的時候,只需要從將a塔上的乙個盤子移到c塔上。當a塔上有兩個盤子是,先將a塔上的1號盤子 編號從上到下 移動到b塔上,再將a塔上的2號盤子移動的c塔上,最後將b塔上的小盤子移動到c塔上。當a塔上有3個盤子時,先將a塔上編號1至2的盤子 共2個 移動到b塔上 需借助c塔 然後將a...

經典遞迴問題 漢諾塔

漢諾塔 漢諾塔問題第一次接觸時就感覺非常有趣,但是由於當時知識有限不能深刻地理解遞迴的含義,所以沒能繼續深究,現在來談一談吧。題目描述 漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從上往下從小到大順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在...

經典遞迴題目 漢諾塔

漢諾塔是乙個非常經典的遞迴問題。解決這種遞迴問題,從最簡單的情況開始著手。設現在有三個位置,分別是起始位置,過渡位置,目標位置。假設 n 1,那麼直接一步就可以了。n 2 時,我們需要把起始位置上面的小的一塊先放到 過渡位置,然後把大的一塊放到目標位置。再把小的放到大的上去。n 3 時,可以看到,要...