黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁考試吧論壇Exam8視線考試商城網絡課程模擬考試考友錄實用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓 自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產評估師
審計師考試
高級會計師
注冊稅務師
國際內審師
理財規劃師
美國注冊會計師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
造價員考試
注冊計量師
環保工程師
化工工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
繽紛校園 實用文檔 英語學習 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項輔導
軟件水平考試交流互動
軟件水平考試交流互動
您現在的位置: 考試吧 > 軟件水平考試 > 復習資料 > 程序員資料 > 正文

C語言初學者入門知識之函數03

  本題算法分析如下,設A上有n個盤子。

  如果n=1,則將圓盤從A直接移動到C。

  如果n=2,則:

  1.將A上的n-1(等于1)個圓盤移到B上;

  2.再將A上的一個圓盤移到C上;

  3.最后將B上的n-1(等于1)個圓盤移到C上。

  如果n=3,則:

  A. 將A上的n-1(等于2,令其為n`)個圓盤移到B(借助于C),

  步驟如下:

  (1)將A上的n`-1(等于1)個圓盤移到C上,見圖5.5(b)。

  (2)將A上的一個圓盤移到B,見圖5.5(c)

  (3)將C上的n`-1(等于1)個圓盤移到B,見圖5.5(d)

  B. 將A上的一個圓盤移到C,見圖5.5(e)

  C. 將B上的n-1(等于2,令其為n`)個圓盤移到C(借助A),

  步驟如下:

  (1)將B上的n`-1(等于1)個圓盤移到A,見圖5.5(f)

  (2)將B上的一個盤子移到C,見圖5.5(g)

  (3)將A上的n`-1(等于1)個圓盤移到C,見圖5.5(h)。

  到此,完成了三個圓盤的移動過程。

  從上面分析可以看出,當n大于等于2時, 移動的過程可分解為三個步驟:

  第一步 把A上的n-1個圓盤移到B上;

  第二步 把A上的一個圓盤移到C上;

  第三步 把B上的n-1個圓盤移到C上;其中第一步和第三步是類同的。

  當n=3時,第一步和第三步又分解為類同的三步,即把n`-1個圓盤從一個針移到另一個針上,這里的n`=n-1。顯然這是一個遞歸過

  程,據此算法可編程如下:

  move(int n,int x,int y,int z)

  {

  if(n==1)

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

  else

  {

  move(n-1,x,z,y);

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

  move(n-1,y,x,z);

  }

  }

  main()

  {

  int h;

  printf("\ninput number:\n");

  scanf("%d",&h);

  printf("the step to moving %2d diskes:\n",h);

  move(h,'a','b','c');

  }

  move(int n,int x,int y,int z)

  {

  if(n==1)

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

  else

  {

  move(n-1,x,z,y);

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

  move(n-1,y,x,z);

  }

  }

  main()

  { ……

  move(h,'a','b','c');

  }

  從程序中可以看出,move函數是一個遞歸函數,它有四個形參n,x,y,zn表示圓盤數,x,y,z分別表示三根針。move 函數的功能是把x上的n個圓盤移動到z 上。當n==1時,直接把x上的圓盤移至z上,輸出x→z。如n!=1則分為三步:遞歸調用move函數,把n-1個圓盤從x移到y;輸出x→z;遞歸調用move函數,把n-1個圓盤從y移到z。在遞歸調用過程中n=n-1,故n的值逐次遞減,最后n=1時,終止遞歸,逐層返回。當n=4 時程序運行的結果為:

  input number:

  4

  the step to moving 4 diskes:

  a→b

  a→c

  b→c

  a→b

  c→a

  c→b

  a→b

  a→c

  b→c

  b→a

  c→a

  b→c

  a→b

  a→c

  b→c

  相關推薦:

  2012年軟考系統分析師考試60天完美復習計劃

  2012年軟件水平考試網絡工程師章節筆記講義匯總

  2012年上半年軟件水平考試成績查詢匯總

文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
主站蜘蛛池模板: 国产成人精品免费视频软件 | 午夜性爽快免费视频播放 | 成人国产在线视频在线观看 | 国产精品2023 | 国产亚洲一区二区三区 | 亚洲一区二区三区高清 不卡 | 一个人看的www在线高清 | 免费人成网站线观看合集 | 看全色黄大色黄大片免责看的 | 婷婷六月丁 | 久久精品免费全国观看国产 | 国产成人综合一区精品 | 青青草针对 | 五月视频 | 伊人久久五月天 | 一区二区三区视频免费 | 67194老司机精品午夜 | 午夜男人一级毛片免费 | 日日日天天射天天干视频 | 免费特黄一级欧美大片在线看 | 亚洲黄v| 天海翼一区二区三区四区 | 青青草针对 | 日韩三级在线 | 国产成人a∨麻豆精品 | 一级一级一级一级毛片 | 日本视频a| 亚洲一区免费观看 | 天堂精品 | 高h辣h双处全是肉一对一 | 国产人成精品香港三级在 | 人人爱干 | 亚洲第一页综合 | 成人91| 羞羞网站在线免费观看 | 免费一级成人毛片 | 欧美手机在线 | 欧美激情亚洲激情 | 最近免费的中文字幕一 | 成人在线综合 | 天天曰天天射 |