[問題] 迴圈改遞迴請益
小弟第一次發文,若有違反版規的,請鞭小力點,謝謝。
小弟的題目,是尋找一個字串中,某個字母的出現次數
迴圈版本相當簡單,我還應付得來,程式碼如下:
int countI(string s, char c)
{
int length = s.size(), cnt = 0;
for (int i = 0; i < length; i++)
if (s[i] == c)
cnt++;
return cnt;
}
但遞迴的版本,我真的是一點頭緒也沒有
int countR(string s, char c)
{
int length = s.size();
if(s[length] == c)
return 1 + countR(s, c);
}
我原本是這樣寫,可是有一個很大的問題是 length 的值都一樣阿
每函式重進去一次,就會重新呼叫 length = s.size();
請求各位大神給點方向,感恩。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.114.150
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1538146355.A.183.html
→
09/28 23:09,
6年前
, 1F
09/28 23:09, 1F
→
09/28 23:23,
6年前
, 2F
09/28 23:23, 2F
→
09/28 23:23,
6年前
, 3F
09/28 23:23, 3F
推
09/28 23:43,
6年前
, 4F
09/28 23:43, 4F
推
09/28 23:47,
6年前
, 5F
09/28 23:47, 5F
→
09/29 00:12,
6年前
, 6F
09/29 00:12, 6F
→
09/29 00:13,
6年前
, 7F
09/29 00:13, 7F
→
09/29 00:46,
6年前
, 8F
09/29 00:46, 8F
→
09/29 00:47,
6年前
, 9F
09/29 00:47, 9F
→
09/29 00:49,
6年前
, 10F
09/29 00:49, 10F
→
09/29 12:52,
6年前
, 11F
09/29 12:52, 11F
→
09/29 12:53,
6年前
, 12F
09/29 12:53, 12F
→
09/29 12:53,
6年前
, 13F
09/29 12:53, 13F
→
09/29 16:00,
6年前
, 14F
09/29 16:00, 14F
→
09/29 16:00,
6年前
, 15F
09/29 16:00, 15F
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章