visual c++~河內塔問題 |
尚未結案
|
飛飛
一般會員 發表:5 回覆:4 積分:1 註冊:2005-04-04 發送簡訊給我 |
#include
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
河內塔的想法很簡單
如果是 A 搬到 C 的話 當只有一個盤子時,就是直接 A -> C
就是程式中 if(n==1) 的部份 如果是二塊盤子呢?也就是 n = 2
很明顯就是先把第一塊,從
1: A -> B
2: A -> C
1: B -> C 所以擴充到 n 時,就是先把 n - 1 的拿到暫時的 B 去
再 n 移到 C,就可以把 n - 1 搬到 C 去了
大意是這樣,只是要注意一點,並不總是 A -> C 的
A, B, C 這三根柱子的角色是會一直變換的 基本上,這種題目在基本程式語言的遞迴章節都會說明的
可以去找來看看
不然你也可以參考下面這個例子
http://delphi.ktop.com.tw/topic.php?topic_id=40260
不用強迫去看程式碼,因為骨子裡的演算法跟你一樣
他的執行畫面,可以讓你大概了解一下河內塔是在怎麼運作的
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |