fact(n) は,非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。
ウ. if n=0 then return 1 else return n×fact(n-1)
階乗 n! は n×(n-1)×…×1 で定義され、0!=1 と決められています。再帰では「処理が止まる基底条件」と「自分自身を引数を減らして呼ぶ再帰部」の両方が必要です。正解ウは基底条件 n=0 のとき 1 を返し(0!=1)、それ以外は n×fact(n-1) で n に 1 つ小さい階乗を掛けます。これにより fact(3)=3×fact(2)=3×2×fact(1)=…=3×2×1×1 と正しく計算され、引数が必ず 0 に向かって減るため再帰も停止します。
ap-2025r07h-a の過去問一覧へ戻る・問7