fact(n)は,非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。
階乗の再帰は0!=1を基底に、n×fact(n-1)で引数を減らす
選択肢
- アif n=0 then return 0 else return n×fact(n-1)
- イif n=0 then return 0 else return n×fact(n+1)
- ウif n=0 then return 1 else return n×fact(n-1)
- エif n=0 then return 1 else return n×fact(n+1)
正解と解説
正解:ウ if n=0 then return 1 else return n×fact(n-1)
階乗の再帰的定義は、基底部で0の階乗を1とし、再帰部でnと「n-1の階乗」の積を返す形になる。基底部を0と置くと積が常に0になってしまうため、返す値は1でなければならない。また再帰呼出しの引数はn-1と減らさないと基底部に到達せず、無限再帰になる。
選択肢ごとの解説
- ア基底部が0だと掛け算の結果が全て0になり、階乗にならない。
- イ基底部が0で誤りな上、引数がn+1では基底部に到達せず停止しない。
- ウ正解。0の階乗を1とし、n×fact(n-1)で再帰する正しい定義。
- エ基底部は正しいが、引数がn+1だと値が減らず無限に再帰する。
同じ分野の他の問題
- 0≦x≦1の範囲で単調に増加する連続関数f(x)がf(0)<0≦f(1)を満たすときに,区間内でf(x)=0であるxの値…2025年度 春期 午前 問2
- 整列方法に関するアルゴリズムの記述のうち、バブルソートの記述はどれか。ここで、整列対象は重複のない1から9の数字がランダ…2024年度 春期 午前 問7
- 正の整数Mに対して、次の二つの流れ図に示すアルゴリズムを実行したとき、結果xの値が等しくなるようにしたい。aに入れる条件…2024年度 春期 午前 問5
- あるデータ列を整列したら状態0から順に状態1、2、・・・・、Nへと推移した。整列に使ったアルゴリズムはどれか。2023年度 秋期 午前 問6
- 配列に格納されたデータ2, 3, 5, 4, 1に対して、クイックソートを用いて昇順に並べ替える。2回目の分割が終わった…2023年度 春期 午前 問7
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。