遞迴小問題之漢諾塔

2022-08-05 07:45:13 字數 744 閱讀 1308

遞迴挺重要的,一定要會

對於漢諾塔的理解,其實是很簡單的,但是感覺也挺經典的:假設one,two,thr三個支柱,要將第乙個支柱上的n個盤子移到第三個上,輸出移動的順序;

1.其實也就是將n-1個盤子借助thr移到two上,

2.然後將one上的第n個盤子移動到thr上;

3.然後將two上的n-1個盤子移到thr上;

而對於n-1個盤子如何來進行移動,則就屬於遞迴呼叫了。

#include

void move(char x,char y);

void hano(int n,char one,char two,char thr);

int main()

int m;

printf("panzigeshu:\n");

scanf("%d",&m);

printf("yidongbuzhou:\n");

hano(m,'a','b','c');

return 0;

void move(char x,char y)

printf("%c-->%c\n",x,y);

void hano(int n,char one,char two,char thr)

if(n==1)

move(one,thr);

else

hano(n-1,one,thr,two);

move(one,thr);

hano(n-1,two,one,thr);

遞迴小問題之漢諾塔

遞迴挺重要的,一定要會 對於漢諾塔的理解,其實是很簡單的,但是感覺也挺經典的 假設one,two,thr三個支柱,要將第乙個支柱上的n個盤子移到第三個上,輸出移動的順序 1.其實也就是將n 1個盤子借助thr移到two上,2.然後將one上的第n個盤子移動到thr上 3.然後將two上的n 1個盤子...

河內之塔 漢諾塔問題 遞迴

河內之塔 towersofhanoi 是法國人m.claus lucas 於1883年從泰國帶至法國的,河內為越戰時 北越的首都,即現在的胡志明市 1883年法國數學家edouardlucas曾提及這個故事,據說創世紀時benares有一座波羅教塔,是由三支鑽石棒 pag 所支撐,開始時神在第一根棒...

漢諾塔問題(遞迴)

題目描述 對於傳統的漢諾塔遊戲我們做乙個拓展,我們有從大到小放置的n個圓盤,開始時所有圓盤都放在左邊的柱子上,按照漢諾塔遊戲的要求我們要把所有的圓盤都移到右邊的柱子上,請實現乙個函式列印最優移動軌跡。給定乙個int n,表示有n個圓盤。請返回乙個string陣列,其中的元素依次為每次移動的描述。描述...