午前問7
fact(n)は、非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。
if n=0 then 0 else return n×fact(n−1) | |
if n=0 then 0 else return n×fact(n+1) | |
if n=0 then 1 else return n×fact(n−1) | |
if n=0 then 1 else return n×fact(n+1) |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ウ
解説
ア〜エにn=4を当てはめ、それぞれを計算すると以下となります。
ア. | if n=0 then 0 else return n×fact(n−1) |
=4×fact(3) =4×3×fact(2) =4×3×2×fact(1) =4×3×2×1×fact(0) =4×3×2×1×0 =0 | |
イ. | if n=0 then 0 else return n×fact(n+1) |
=4×fact(5) =4×5×fact(6) =4×5×6×fact(7) 以降無限ループとなり計算不可 | |
ウ. | if n=0 then 1 else return n×fact(n−1) |
=4×fact(3) =4×3×fact(2) =4×3×2×fact(1) =4×3×2×1×fact(0) =4×3×2×1×1 =24 | |
エ. | if n=0 then 1 else return n×fact(n+1) |
=4×fact(5) =4×5×fact(6) =4×5×6×fact(7) 以降無限ループとなり計算不可 |
非負の整数n=4に対してn=4の階乗は24なのでウが正解となります。