第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

幫忙分析下這個 程序

#include<stdio.h>

int main()

{

?void hanoi9(int n,char one,char two,char three);

int m;

printf("input the number of diskes:");

scanf("%d",&m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

}


void hanoi(int n,char one,char two,char three)

{

?void move(char x,char y);

if(n==1)

?move(one,three);

else

? {

? hanoi(n-1,one,three,two);????????? //? 從這里開始 然后 下三行????? 求大神解釋!??!

? move(one three);

? hanoi(n-1,two,one,three);

?}

}


void move(char x,char y)

{

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

}



正在回答

1 回答

不知道你從哪里得到這個漢諾塔程序的代碼,是有錯誤的,其實(shí)算法非常簡單,當(dāng)盤子的個數(shù)為n時,移動的次數(shù)應(yīng)等于2^n – 1(有興趣的可以自己證明試試看)。后來一位美國學(xué)者發(fā)現(xiàn)一種出人意料的簡單方法,只要輪流進(jìn)行兩步操作就可以了。首先把三根柱子按順序排成品字型,把所有的圓盤按從大到小的順序放在柱子A上,根據(jù)圓盤的數(shù)量確定柱子的排放順序:若n為偶數(shù),按順時針方向依次擺放 A B C;若n為奇數(shù),按順時針方向依次擺放 A C B。⑴按順時針方向把圓盤1從現(xiàn)在的柱子移動到下一根柱子,即當(dāng)n為偶數(shù)時,若圓盤1在柱子A,則把它移動到B;若圓盤1在柱子B,則把它移動到C;若圓盤1在柱子C,則把它移動到A。⑵接著,把另外兩根柱子上可以移動的圓盤移動到新的柱子上。即把非空柱子上的圓盤移動到空柱子上,當(dāng)兩根柱子都非空時,移動較小的圓盤。這一步?jīng)]有明確規(guī)定移動哪個圓盤,你可能以為會有多種可能性,其實(shí)不然,可實(shí)施的行動是唯一的。⑶反復(fù)進(jìn)行⑴⑵操作,最后就能按規(guī)定完成漢諾塔的移動。所以結(jié)果非常簡單,就是按照移動規(guī)則向一個方向移動金片:如3階漢諾塔的移動A→C,A→B,C→B,A→C,B→A,B→C,A→C

下面的程序是把你的程序里錯的地方改過來了

#include<stdio.h>

void hanoi(int,char,char);

void move(char,char);

int main()

{

void hanoi(int n,char one,char two,char three);

int m;

printf("input the number of diskes:");

scanf("%d",&m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

getchar();

getchar();

}


void hanoi(int n,char one,char two,char three)

{

if(n==1)

move(one,three);

else

{

hanoi(n-1,one,three,two); ? ? ? ? ?// ?從這里開始 然后 下三行 ? ? ?求大神解釋?。?!

move(one ,three);

hanoi(n-1,two,one,three);

}

}


void move(char x,char y)

{

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

}


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C語言入門
  • 參與學(xué)習(xí)       926894    人
  • 解答問題       21492    個

C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言

進(jìn)入課程

幫忙分析下這個 程序

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號