Re: [問卦] 寫程式會用遞迴 大概是什麼程度?
※ 引述《jason851124 (YeeeEX)》之銘言:
: 乳提
: 在寫code的時候
: 常用迴圈來設條件 讓程式來達成想要的目的
: 如for, while, do while
: 但有另一種比較進階的概念叫遞迴
: 就如同全面啟動一樣 一層一層的進入夢靨
: 一層一層的呼叫自身函數 最後在慢慢逃脫
: 這種架構在撰寫的時候 邏輯要更清晰
: 想問可以習慣寫遞迴的人
: 大概是什麼等級阿? 有掛?
以前在C語言板看過一個簽名檔
一個在程式語言界有名的人說了一句話:「遞迴只在天上有,凡人應該用迴圈」
可能對方是名人,大家都奉為圭臬
我一點都不同意
舉個簡單例子好了
一個陣列a[]取任意3個,用迴圈怎麼寫?
for(int i=0;i<a.size();i++)
{
for(j=i+1;j<a.size();j++)
{
for(k=j+1;k<a.size();k++)
{
//.....
//以下做特殊處理
}
}
}
那如果取20個咧,不就寫到昏倒
以前在冼鏡光的名題精選百則<使用C語言>有提到一個方法,不用遞迴,也不用上述作法
列出K個元素的子集
可是非常難懂,是60年代的計算機科學家就發明出來的方法
因為非常難懂(至少對我),一陣子沒讀又忘了
可是這種陣列a[]取任意n個,用遞迴來做非常好寫
我都這樣寫
void recur(int tl, int level, int start)
{
if(level==0)
{
//以下做特殊處理
// ......
return;
}
for(int i=start;i<a[].size();i++)
{
recur(tl,level-1,i+1);
}
}
在最後一層幹掉就好
我在ProjectEuler很常用到這種遞迴
--
https://projecteuler.net/recent 歐拉編程競賽
https://projecteuler.net/problem=829 最新一題是個簡單題
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.71.38.104 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1676384738.A.812.html
※ 編輯: utomaya (219.71.38.104 臺灣), 02/14/2023 22:27:56
推
02/14 22:26,
1年前
, 1F
02/14 22:26, 1F
推
02/14 22:27,
1年前
, 2F
02/14 22:27, 2F
→
02/14 22:27,
1年前
, 3F
02/14 22:27, 3F
推
02/14 22:28,
1年前
, 4F
02/14 22:28, 4F
→
02/14 22:29,
1年前
, 5F
02/14 22:29, 5F
→
02/14 22:29,
1年前
, 6F
02/14 22:29, 6F
→
02/14 22:29,
1年前
, 7F
02/14 22:29, 7F
→
02/14 22:30,
1年前
, 8F
02/14 22:30, 8F
推
02/14 22:30,
1年前
, 9F
02/14 22:30, 9F
→
02/14 22:30,
1年前
, 10F
02/14 22:30, 10F
推
02/14 22:30,
1年前
, 11F
02/14 22:30, 11F
推
02/14 22:30,
1年前
, 12F
02/14 22:30, 12F
※ 編輯: utomaya (219.71.38.104 臺灣), 02/14/2023 22:32:49
推
02/14 22:33,
1年前
, 13F
02/14 22:33, 13F
→
02/14 22:34,
1年前
, 14F
02/14 22:34, 14F
推
02/14 22:54,
1年前
, 15F
02/14 22:54, 15F
→
02/14 23:04,
1年前
, 16F
02/14 23:04, 16F
→
02/14 23:04,
1年前
, 17F
02/14 23:04, 17F
→
02/14 23:05,
1年前
, 18F
02/14 23:05, 18F
推
02/14 23:18,
1年前
, 19F
02/14 23:18, 19F
推
02/14 23:19,
1年前
, 20F
02/14 23:19, 20F
推
02/14 23:32,
1年前
, 21F
02/14 23:32, 21F
推
02/14 23:33,
1年前
, 22F
02/14 23:33, 22F
→
02/14 23:33,
1年前
, 23F
02/14 23:33, 23F
推
02/15 00:51,
1年前
, 24F
02/15 00:51, 24F
噓
02/15 01:09,
1年前
, 25F
02/15 01:09, 25F
推
02/15 01:25,
1年前
, 26F
02/15 01:25, 26F
→
02/15 04:36,
1年前
, 27F
02/15 04:36, 27F
噓
02/15 06:14,
1年前
, 28F
02/15 06:14, 28F
→
02/15 06:14,
1年前
, 29F
02/15 06:14, 29F
→
02/15 06:14,
1年前
, 30F
02/15 06:14, 30F
討論串 (同標題文章)