平成25年度春期 問6 / 80

平成25年度 春期 応用情報技術者試験 午前 問6

fact(n) は,非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:ウ

階乗は 0! = 1,n! = n × (n−1)!(n ≧ 1)と再帰的に定義できます。

  • ア: if n=0 then return 0 else return n×fact(n−1)
    誤り。0! = 1 なので,n = 0 のときに 0 を返すのは誤りです。この定義ではどの n でも結果が 0 になってしまいます。

  • イ: if n=0 then return 0 else return n×fact(n+1)
    誤り。0! を 0 としている点が誤りで,さらに n+1 を呼び出すため n ≧ 1 では再帰が終了しません。

  • ウ: if n=0 then return 1 else return n×fact(n−1)
    正しい。0! = 1,n! = n × (n−1)! という階乗の定義そのものです。n が1ずつ減って 0 で再帰が終了します。

  • エ: if n=0 then return 1 else return n×fact(n+1)
    誤り。n+1 を呼び出すため n ≧ 1 では n が増え続け,再帰が終了しません。


答え

ウ: if n=0 then return 1 else return n×fact(n−1)

出典:平成25年度 春期 応用情報技術者試験 午前 問6

平成25年度春期の他の問題