1. 請建立遞迥函數解出5個盤子 的河內塔問題
2. 請參 考如下方式用Excel寫出所有完整的遞迥呼叫的執行過程
3. 執行 過程Excel檔請在Google 文件設為共用並將url置 於網頁上
https://spreadsheets.google.com/spreadsheet/ccc?key=0ApUm9nzN2PbqdEthRmYyZURuTjM2ODRjSmlNUFdnS2c&hl=en_US
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* 程式範例: Ch5-5e.c */ /* 河內塔問題的遞迴函數 */ int { if /* 終止條件 */ printf("盤子從 %d 移到 %d\n", peg1, peg3); else { hanoiTower(dishs - 1,peg1,peg3,peg2); /* 第1步驟 */ printf("盤子從 %d 移到 %d\n", peg1, peg3); hanoiTower(dishs - 1,peg2,peg1,peg3); /* 第3步驟 */ } } /* 主程式 */ int { hanoiTower(5,1,2,3); /* 呼叫遞迴函數 */ system("PAUSE"); return 0; } |
執行結果:
盤子從 1 移到 3
盤子從 1 移到 2
盤子從 3 移到 2
盤子從 1 移到 3
盤子從 2 移到 1
盤子從 2 移到 3
盤子從 1 移到 3
盤子從 1 移到 2
盤子從 3 移到 2
盤子從 3 移到 1
盤子從 2 移到 1
盤子從 3 移到 2
盤子從 1 移到 3
盤子從 1 移到 2
盤子從 3 移到 2
盤子從 1 移到 3
盤子從 2 移到 1
盤子從 2 移到 3
盤子從 1 移到 3
盤子從 2 移到 1
盤子從 3 移到 2
盤子從 3 移到 1
盤子從 2 移到 1
盤子從 2 移到 3
盤子從 1 移到 3
盤子從 1 移到 2
盤子從 3 移到 2
盤子從 1 移到 3
盤子從 2 移到 1
盤子從 2 移到 3
盤子從 1 移到 3
請按任意鍵繼續 . . .
沒有留言:
張貼留言