
応用情報技術者試験 令和7年度 春期 午前、全80問のうちの問7。
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)
答えと解説を開く
正解はウです。
n の
ほかの選択肢が違う理由
- アn が
0 の とき 0 を 返すと、 どの n でも 最後に 0 を 掛ける ことに なり、 結果が 常に 0 に なります。 - イfact(n + 1) を
呼ぶと 引数が 大きくなる 一方で、 n=0 に 届きません。 再帰が 終わりません。 また 0 を 返す点も 誤りです。 - エ止まる
条件で 1 を 返すのは 正しいですが、 fact(n + 1) を 呼ぶので 引数が 増え続け、 再帰が 終わりません。
仕組み
再帰は、
基底条件が