"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(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
25
0
#660140
thank u~~~
0
0