過去問解きまくり研究所 ホーム

平成28年度 春期 午前 問7

アルゴリズム

再帰に関する問題

n の階乗を再帰的に計算する関数 F(n) の定義において,a に入れるべき式はどれか。ここで,n は非負の整数とする。

n > 0 のとき,F(n) = [ a ]
n = 0 のとき,F(n) = 1

原典では [ a ] の部分は枠で囲まれた空欄(中に a と書かれている)です。この画面では枠を引けないため、角括弧で示しています。

答えと解説を見る

✓ これが正解ウn×F(n−1)

解説

n×F(n−1) が階乗の再帰定義そのものです。

階乗の値は、その数から1ずつ小さくした数を最後まで掛け合わせたものです。この式を再帰の形で表すと、ある数の階乗を、その数と、1つ小さい数の階乗との積で書くことができます。ここでは非負の整数を対象にしていて、0のときの値を1と決めているので、掛け算を終える基準ができています。判定の軸は、いま扱っている数と、1つ小さい数の階乗を掛け合わせる形になっているかどうかの一点です。空欄に入るのは、いま扱っている数と、1つ小さい数の階乗を掛ける式です。ここで扱っているのは、繰返しを再帰の呼出しで置き換える書き換えの考え方で、基準になる止め方が別に決められていることが正しく働くための前提になります。

ほかの選択肢はなぜ違うのか

出典:平成28年度 春期 基本情報技術者試験 午前 問7(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)