27 C 語言的函數如下,則 g(10, 10)的回傳值為何?
int g(int s, int n) {
if(n<=1)
return s;
return g(s+n, n-1);
}
(A) 54
(B) 55
(C) 64
(D) 65
答案:登入後查看
統計: A(20), B(53), C(123), D(34), E(0) #3481600
統計: A(20), B(53), C(123), D(34), E(0) #3481600
詳解 (共 2 筆)
#7321261
遇到遞迴函式都先從不會出現遞迴的結果開始
s維持不變,但是n改成1
s維持不變,但是n改成1
n=1的時候,s=10
然後接著n改成2
會回傳 return g(10+2, 2-1)
因為這時n=1,而我們在之前就知道n=1就會直接回傳s的值,也就是12
所以接下來就是做成表格來依序
ㅤㅤ
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| s | 10 |
10+2=
12
|
12+3=
15
|
15+4=
19
|
19+5=
24
|
24+6=
30
|
30+7=
37
|
37+8=
45
|
45+9=
54
|
54+10=
64
|
ㅤㅤ
ㅤㅤ
0
0