討論區快速選單
知識庫快速選單
網路投保旅行平安險 傑米的攝影旅遊筆記 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
關於用C寫「河內塔」......
更改我的閱讀文章字型大小
作者 : makinhung(Terence)
[ 貼文 3 | 人氣 373 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/24 下午 06:36:38
我是看書學C語言的新手,書中有一個以「河內塔」作例子介紹「自訂函式」的。範例程式如下:
#include <stdio.h>
void hanoi(int,int,int,int);

int main(void)
{
  int i;

  printf("總共有多少圓盤要搬?\n");
  scanf("%d",&i);
  hanoi(i,1,2,3);

  return 0;
}

void hanoi(int i,int begin,int mid,int dest)
{
  if (i==1) /* 遞迴終止條件 */
    printf("將第 %d 個盤子從第 %d 個塔移到第 %d 個塔\n",
     i,begin,dest);
  else
  {
    hanoi(i-1,begin,dest,mid);
    printf("將第 %d 個盤子從第 %d 個塔移到第 %d 個塔\n",
     i,begin,dest);
    hanoi(i-1,mid,begin,dest);
  }
}

程式的效果是十分成功,可是我看了幾遍,其中的概念還是掌握得不清楚。之前的例子我一般都會憑自己掌握了的概念去再寫一次,不過因為這次我不明白,所以想請教各位高手,我應如何處理此例子?
A. 不了了之,繼續學習以後的東西。
B. 背上心,然後自己寫一次。
C. 請求高手解釋。
D. 暫時不理,讀完本章後再嘗試。

謝謝!
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人makinhung註記此篇回應為很有道理 2005/8/24 下午 07:09:37
>程式的效果是十分成功,可是我看了幾遍,其中的概念還是掌握得不清楚。

E. 把書本燒掉 (說笑而已)

用河內塔來介紹自訂函式,等於用一個超複雜的例子去示範一個本來很簡單的概念,
犯了教學界的「兵家大忌」。

河內塔通常用來示範遞迴,而遞迴又是進階的課題,
以後再學吧,現在不要卡在這裡。
作者 : makinhung(Terence)
[ 貼文 3 | 人氣 373 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/24 下午 08:19:12
>用河內塔來介紹自訂函式,等於用一個超複雜的例子去示範一個本來很簡單的概念,
>犯了教學界的「兵家大忌」。
>
>河內塔通常用來示範遞迴,而遞迴又是進階的課題,
>以後再學吧,現在不要卡在這裡。
多謝!
作者 : phoebus7(小P) 貼文超過200則人氣指數超過30000點
[ 貼文 407 | 人氣 43340 | 評價 690 | 評價/貼文 1.7 | 送出評價 121 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/27 下午 10:00:43
= ='''您手上的書該不會是......

書名:"C 最新程式XX"(附光碟 + 編譯程式)
作者:"X威X研究室"
出版社:"X標出版社"
ISBN:"95X-717-9X4-9"
該程式範例於"7-42~7-45"

(我這樣應該不算是為該書打廣告吧= =?已經夠多"X"了......)

我建議您"先找其他書本較簡單的範例來看",看久了,"自然就會想通",再回頭來看此程式,就會覺得"簡單多了"......(個人經驗,不過不是在 C 方面,但是程式就是這樣學的吧?!)加油喔!!!
作者 : bensontan(Benson) 貼文超過1000則人氣指數超過30000點
[ 貼文 1056 | 人氣 40462 | 評價 3290 | 評價/貼文 3.12 | 送出評價 80 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/14 上午 11:47:14
寫遞迴要解兩個部份:
1.公式:找出解問題的公式,以Hanoi來說,公式是:
 a. 把n-1個碟子從來源柱放到暫存柱(即原來的目的柱是暫存柱,而原暫存柱是目的柱)
 b. 把第n個碟子從來源柱放到目的柱
 c. 把n-1個碟子從暫存柱放到目的柱(即原來的來源柱是暫存柱,而原來源柱是暫存柱)
2.條件:找出跳出的條件,以Hanoi來說,條件是:
    當碟子等於1時停止
作者 : vincent738(小P)
[ 貼文 39 | 人氣 1574 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/22 上午 10:57:29
遞迴的觀念最適用於樹的概念,樹的概念就是指的資料庫的資料處方式的基本概念,當然對初學者而言,難度很高,因為這是觀念的問題,建議你可先跳過,不然到了指標,你可能就掛點了....
作者 : vincent738(小P)
[ 貼文 39 | 人氣 1574 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/22 上午 10:57:38
遞迴的觀念最適用於樹的概念,樹的概念就是指的資料庫的資料處方式的基本概念,當然對初學者而言,難度很高,因為這是觀念的問題,建議你可先跳過,不然到了指標,你可能就掛點了....
 板主 : Jammy
 > 新手入門 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 新手入門 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
新手入門
1 Raymond 900 
2 BK. 820 
3 Jasper 500 
4 太子 500 
5 Benson 410 
6 joe 400 
7 DEMO999 370 
8 青衫 300 
9 小朱 300 
10 Eric Ho 290 
新手入門
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625