問7令和7年度 春期テクノロジ系
fact(n)は,非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。
- ア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)
正解はウ
解説 本サイト独自(IPA公表のものではありません)
ウ 階乗は,非負の整数をその数から1まで順に掛けた値であり,0の階乗は1である。nが0でなければ,nの階乗はnとn-1の階乗との積になるので,処理を終える条件と再帰呼出しの両方が正しい。
- ア 0の階乗を0としているため誤りである。この定義では,どの正の整数でも最後に0を掛けることになり,結果が0になる。
- イ 0の階乗を0としている上に,引数を増やして再帰するので0へ近づかない。処理を終える条件に到達できない。
- エ 0の階乗を1とする点は正しいが,引数をn+1へ増やすため,非負のnから0へ近づかず,再帰が終了しない。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和7年度 春期 応用情報技術者試験 午前 問7