問題
fact(n) は、非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。
選択肢
- 1if n=0 then return 0 else return n×fact(n−1)
- 2if n=0 then return 0 else return n×fact(n+1)
- 3if n=0 then return 1 else return n×fact(n−1)
- 4if n=0 then return 1 else return n×fact(n+1)
正解
3. if n=0 then return 1 else return n×fact(n−1)
詳しい解説を見る解説を閉じる
解説
階乗は 0!=1、n!=n×(n−1)! で定義される。再帰の基底条件は n=0 のとき 1 を返すことであり、再帰呼出しでは n に fact(n−1) を掛けて n の値を 1 ずつ減らして 0 に収束させる。よって「if n=0 then return 1 else return n×fact(n−1)」のウが正解。基底値を 0 とすると全ての結果が 0 になり誤り。(出典: 平成29年度 秋期 応用情報技術者試験 午前 問7)
一問一答
全400問を繰り返し学習