English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

這是範例寫的 他用傳址的樣子...
遞迴的寫法我也不懂 不旨意個函式的遞迴??
哪位好心人能幫我說明一下它的流程 ...
time函式是我自己加的,想看看run多久-.-
#include
#include
#include
void hanoi(int,char*,char*,char*);
int main(){
clock_t start,end,times;
start=clock();
int n;
printf("數入一個整數n:");
scanf("%d",&n);
hanoi(n, "left", "middle", "right");
end=clock();
times=(end-start)/CLOCKS_PER_SEC;
printf("所需秒數為:%d\n",times);
}
/*河內塔 tower of hanoi函式*/
void hanoi(int level_no,char *pos1,char *pos2,char *pos3){
if(level_no==1){
printf("no=%d %s->%s\n",level_no,pos1,pos3);
}else{
hanoi(level_no-1, pos1, pos3, pos2);
printf("no=%d %s->%s\n",level_no,pos1,pos3);
hanoi(level_no-1, pos2, pos1, pos3);
}
}

2007-03-17 23:15:35 · 1 個解答 · 發問者 finalholy 1 in 電腦與網際網路 程式設計

有人能幫我解釋一下嗎~.~

2007-03-23 00:33:46 · update #1

3ABC
 2ACB (4)3:AC 2ABC
 1ABC (2):AB 1CAB 1BCA (6)2:BC 1ABC
 X (1)1:AC X X (3)1:CB X X (5)1:BA X X (7)1:AC X
它給的流程基本上就看不懂他在做啥

2007-03-24 02:07:40 · update #2

我只是想搞清楚他的right middle left怎麼變
我不懂他的運作方式...

2007-03-24 03:41:16 · update #3

內部運作都不懂了~.~在多解釋也沒用

2007-03-24 03:41:37 · update #4

1 個解答

看這裡:

http://content.edu.tw/senior/computer/ks_ks/book/algodata/algorithm/algo44.htm

2007-03-23 05:18:50 補充:
更快的解法請看:

http://en.wikipedia.org/wiki/Tower_of_Hanoi#Recursive_algorithm
河內塔(英)

2007-03-23 01:13:09 · answer #1 · answered by mh 7 · 0 0

fedest.com, questions and answers