/*
問題:漢諾塔問題
解法:遞迴求解
思路:先把n-1從a移動b
在把第n個從a移到c
使用遞迴使得**變得簡單
複雜度:2的n次方-1
*/#includeint step = 1;
void hanoi(int level,char a,char b,char c)
//(1)當盤子數大於1時,先把n-1個從a借助c移動到b。
hanoi(level - 1, a, c, b);
//(2)然後把最後乙個從a移動到c。
printf("第%03d步:從%c柱移動到%c柱\n", step++, a, c);
//(3)再接著把盤子數大於1時,先把n-1個從b借助a移動到c。
hanoi(level - 1, b, a, c);
}int main()
漢諾塔問題(遞迴)
題目描述 對於傳統的漢諾塔遊戲我們做乙個拓展,我們有從大到小放置的n個圓盤,開始時所有圓盤都放在左邊的柱子上,按照漢諾塔遊戲的要求我們要把所有的圓盤都移到右邊的柱子上,請實現乙個函式列印最優移動軌跡。給定乙個int n,表示有n個圓盤。請返回乙個string陣列,其中的元素依次為每次移動的描述。描述...
漢諾塔問題(遞迴)
漢諾塔 在印度,有這麼乙個古老的傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,有三根柱子。印度教的主神梵天在創造世界的時候,在其中一根柱子上從下到上地穿好了由大到小的64片金盤,這就是所謂的漢諾塔。不論白天黑夜,總有乙個僧侶在按照下面的法則移動這些金盤 一次只移動一片,不管在哪根柱子上,小片必須在...
漢諾塔問題 遞迴
漢諾塔問題是乙個經典的問題。漢諾塔 hanoi tower 又稱河內塔,源於印度乙個古老傳說。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,任何時候,在小圓盤上都不能放大圓盤,且在...