[問題] 關於遞迴函式的一點問題
版上各位好,
小弟最近剛學C++
目前看到遞迴函式的地方有點小問題
遞迴函式的經典範例就是拿來計算階乘
但我有一個地方有點不太懂
程式碼如下 :
int factorial(int n) {
if (n == 1)
return 1;
else
return (n * factorial(n - 1));
}
在輸入的n不為1的時候會一直不斷地呼叫自己做計算
當n==1時停止
但當它不斷呼叫自己直至n=1時不是會被return 1嗎?
為何最終的答案還是階乘正確計算的數值呢?
請教版上各位大神解答
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.148.169 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1584115053.A.D25.html
推
03/14 00:02,
4年前
, 1F
03/14 00:02, 1F
→
03/14 00:04,
4年前
, 2F
03/14 00:04, 2F
推
03/14 00:34,
4年前
, 3F
03/14 00:34, 3F
推
03/14 01:20,
4年前
, 4F
03/14 01:20, 4F
→
03/14 01:20,
4年前
, 5F
03/14 01:20, 5F
→
03/14 01:53,
4年前
, 6F
03/14 01:53, 6F
推
03/14 05:06,
4年前
, 7F
03/14 05:06, 7F
推
03/14 10:09,
4年前
, 8F
03/14 10:09, 8F
→
03/14 10:09,
4年前
, 9F
03/14 10:09, 9F
推
03/14 10:20,
4年前
, 10F
03/14 10:20, 10F
→
03/14 10:20,
4年前
, 11F
03/14 10:20, 11F
推
03/14 10:23,
4年前
, 12F
03/14 10:23, 12F
推
03/14 14:32,
4年前
, 13F
03/14 14:32, 13F
→
03/14 21:59,
4年前
, 14F
03/14 21:59, 14F
→
03/14 22:00,
4年前
, 15F
03/14 22:00, 15F
推
03/14 22:31,
4年前
, 16F
03/14 22:31, 16F
→
03/14 22:31,
4年前
, 17F
03/14 22:31, 17F
→
03/31 15:33,
4年前
, 18F
03/31 15:33, 18F
→
03/31 15:33,
4年前
, 19F
03/31 15:33, 19F