[問題] 關於return的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC
問題(Question):
int fib(int n)
{
return n<3?2:fib(n-1)+fib(n-2);
}
int main()
{
printf("%5d",fib(5));
}
今天在書上看到如上所示的問題(大致表示如上,不確定語法是否完全正確)
我是寫印出來的會是10,不過似乎不是正確的?
有大大可以分享一下意見嗎,謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.248.64
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1396437710.A.615.html
→
04/02 19:52, , 1F
04/02 19:52, 1F
→
04/02 20:00, , 2F
04/02 20:00, 2F
推
04/02 20:24, , 3F
04/02 20:24, 3F
→
04/02 20:26, , 4F
04/02 20:26, 4F
→
04/02 21:19, , 5F
04/02 21:19, 5F
推
04/02 22:59, , 6F
04/02 22:59, 6F
不好意思,還是不是很清楚,我的邏輯是這樣的
fib(5) = fib(4)+fib(3) = fib(3)+fib(2)+fib(3)
= [fib(2)+fib(1)]+fib(2)+[fib(2)+fib(1)]
就我看到的是有3個fib(2)跟兩個fib(1),所以我會判斷total是10
至於K大說的"f(0)=1 f(1)=1"的部份,請問是在哪邊被定義到的呢?謝謝
※ 編輯: ybelauren (114.36.248.64), 04/02/2014 23:44:46
→
04/02 23:47, , 7F
04/02 23:47, 7F
→
04/02 23:47, , 8F
04/02 23:47, 8F
→
04/03 00:32, , 9F
04/03 00:32, 9F
→
04/03 00:32, , 10F
04/03 00:32, 10F
→
04/04 02:12, , 11F
04/04 02:12, 11F
→
04/04 02:15, , 12F
04/04 02:15, 12F
→
04/04 13:43, , 13F
04/04 13:43, 13F
→
04/04 13:44, , 14F
04/04 13:44, 14F
→
04/05 09:52, , 15F
04/05 09:52, 15F
→
04/05 11:09, , 16F
04/05 11:09, 16F
→
04/05 11:53, , 17F
04/05 11:53, 17F
→
04/05 11:54, , 18F
04/05 11:54, 18F
→
04/05 11:55, , 19F
04/05 11:55, 19F
→
04/05 15:43, , 20F
04/05 15:43, 20F
→
04/05 15:44, , 21F
04/05 15:44, 21F
→
04/05 15:44, , 22F
04/05 15:44, 22F
→
04/06 02:39, , 23F
04/06 02:39, 23F