作者jacobcrab (雅古蟹)
看板C_and_CPP
標題Re: [問題] 動態調整深度的迴圈(loop)
時間Thu Oct 29 06:03:18 2009
試作
void dyn_depth_loop(int start, int max, int depth) {
if (depth > 0) {
--depth;
for (int a = start; a < max; ++a) {
dyn_depth_loop(a, max, depth);
}
} else if (depth == 0) {
/* function body */
}
}
這樣子作,應該可以吧
※ 引述《liwmewmew (如果大海能夠)》之銘言:
: 其實這個問題問在C++板有點不太對
: 這好像比較偏演算法了?
: 今天在思考一個問題
: 我們也許都曾看過這樣的深層loop
: for(a = 0; a < max; a++)
: for(b = a; b < max; b++)
: for(c = b; c < max; c++){
: }
: 這是三層的loop,如果今天我想寫成動態的,該怎麼寫呢?
: 例如我輸入3,那他就會跑3層
: 我輸入4,他就跑4層,規則同上
: 我想一個晚上,沒想出來~"~
: 不知道是不是我的思考卡住了,還是這種程式寫不出來?
: 謝謝大家~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 86.9.120.242
推 holymars:如果前幾次迴圈的index(上一篇的a b c那篇變數)都拿不到 10/29 09:04
→ holymars:寫多層迴圈就沒有意義啦.. 10/29 09:04
→ holymars:你這樣寫,在function body那裡只看得到最內層迴圈的 10/29 09:04
→ holymars:index 10/29 09:04
推 VictorTom:有道理, 就算用全域變數, 除非用vector之類的不然很難先 10/29 10:04
→ VictorTom:寫好變數數量.... 可以用遞迴加不定長度參數嗎....XD 10/29 10:05
推 cismjmgoshr:前一層的index不是當做參數傳到下一層的遞迴裡了...? 10/29 12:37
推 VictorTom:樓上, 怎麼傳?? 你的index越來越多, 所以像小弟說的用 10/29 13:00
→ VictorTom:不定參數傳嗎?_? 10/29 13:00