[問題] 動態調整深度的迴圈(loop)

看板C_and_CPP作者 (如果大海能夠)時間16年前 (2009/10/28 21:39), 編輯推噓7(7011)
留言18則, 9人參與, 最新討論串1/7 (看更多)
其實這個問題問在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: 60.244.132.208

10/28 21:40, , 1F
遞迴?
10/28 21:40, 1F

10/28 21:41, , 2F
可以使用遞迴: 每一層遞迴裡跑一個 loop
10/28 21:41, 2F

10/28 21:42, , 3F
弟弟弟弟弟弟回
10/28 21:42, 3F

10/28 21:42, , 4F
看來我真的開始秀豆了 哈哈
10/28 21:42, 4F

10/28 21:51, , 5F
就用那個天上才該有的東西
10/28 21:51, 5F

10/28 22:22, , 6F
理論上遞迴與迴圈等價 不過這種程式碼 我還真不知怎寫
10/28 22:22, 6F

10/28 22:35, , 7F
我剛剛拉屎時,有稍微想了一下遞迴怎麼寫,等等試試
10/28 22:35, 7F

10/28 22:36, , 8F
本來純粹用for時,想到的是把這麼多層的for化成一個for
10/28 22:36, 8F

10/28 22:36, , 9F
然後new一個array去記錄每一層的起始點跟變化
10/28 22:36, 9F

10/28 22:37, , 10F
但是沒想得很細,不知道可不可行,但應該蠻複雜(純for)
10/28 22:37, 10F

10/28 22:44, , 11F
stack 模擬遞迴 (意思一樣)
10/28 22:44, 11F

10/29 12:50, , 12F
我覺得迴圈跟遞迴不等價,有些事情迴圈做不到
10/29 12:50, 12F

10/29 12:51, , 13F
舉例,費式數列,可以用迴圈或遞迴解,但是方法不同
10/29 12:51, 13F

10/29 12:53, , 14F
沒有辦法用迴圈的方式,實現遞迴解費氏的方法
10/29 12:53, 14F

10/29 13:10, , 15F
function call 不過就是個 stack push + goto 罷了
10/29 13:10, 15F

10/29 13:42, , 16F
http://nopaste.csie.org/b7e25 隨手寫的供 pizza 參考
10/29 13:42, 16F

10/29 14:42, , 17F
感謝~我懂了~ 另外,這網頁貼code還真好用~
10/29 14:42, 17F

10/29 14:47, , 18F
置底還有介紹好幾個, 這樣我就不用在 BBS 上面上色了 XD
10/29 14:47, 18F
文章代碼(AID): #1Aw4cQVd (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Aw4cQVd (C_and_CPP)