"20.假定 C 語言的函式 xxxx()如下所示,若主程式中執行 printf(""%d "", xxxx(5)); 則螢幕畫面會顯示那個值int xxxx(int n){ if (n ==1) return 1; else return (n* xxxx(n-1));}
(A)120
(B)60
(C) 5
(D)1"
(A)120
(B)60
(C) 5
(D)1"
答案:登入後查看
統計: A(365), B(80), C(88), D(42), E(0) #386441
統計: A(365), B(80), C(88), D(42), E(0) #386441
詳解 (共 2 筆)
#659739
這是一題是遞迴,需要把數字帶入,並且拆開來計算
printf(""%d "", xxxx(5)) =>表式帶入值為5
return (n* xxxx(n-1)) =>是遞迴的公式,簡單的想就是 n * (n-1)
把5帶入,開始展開公式
5 => 5 * xxxx(5-1=4)
4 * xxxx(4-1=3)
3 * xxxx(3-1=2)
2 * xxxx(2-1=1) 分解到1時,if判斷(n==1)時,直接回傳1,無法在分解,遞迴由此結束
依序把數值帶回
5 * xxxx(24)
4 * xxxx(6)
3 * xxxx(2)
2 * xxxx(1)
最後 5*24 = 120
printf(""%d "", xxxx(5)) =>表式帶入值為5
return (n* xxxx(n-1)) =>是遞迴的公式,簡單的想就是 n * (n-1)
把5帶入,開始展開公式
5 => 5 * xxxx(5-1=4)
4 * xxxx(4-1=3)
3 * xxxx(3-1=2)
2 * xxxx(2-1=1) 分解到1時,if判斷(n==1)時,直接回傳1,無法在分解,遞迴由此結束
依序把數值帶回
5 * xxxx(24)
4 * xxxx(6)
3 * xxxx(2)
2 * xxxx(1)
最後 5*24 = 120
25
0
#660140
thank u~~~
0
0