問題
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≧1)である。再帰関数として正しく実装するには、基底(終了条件)として n=0 のとき 1 を返し、それ以外は n×fact(n−1) として引数を1減らしながら再帰呼出しすることで基底に向かって収束させる必要がある。ウがこれに合致し正解。アは n=0 のとき 0 を返すため常に0になり誤り。イとエは fact(n+1) と引数が増えて再帰が終了せず無限再帰になるため誤りである。(出典: 令和7年度 春期 応用情報技術者試験 午前 問7)
一問一答
全400問を繰り返し学習