午前問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なのでウが正解となります。