科目B

基本情報技術者試験 科目B サンプル問題セット(2022年12月公表) 問7

次のプログラム中の   に入れる正しい答えを,解答群の中から選べ。 関数 factorial は非負の整数 n を引数にとり,その階乗を返す関数である。非負の整数 n の階乗は n が 0 のときに 1 になり,それ以外の場合は 1 から n までの整数を全て掛け合わせた数となる。 〔プログラム〕
○整数型: factorial(整数型: n)
  if (n = 0)
    return 1
  endif
  return  
答えを選ぶ

出典:基本情報技術者試験 科目B サンプル問題セット(2022年12月公表) 問7(問題文は IPA の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)

科目Bの解き方と全問の一覧

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:カ

覚える知識

階乗の再帰的定義(n×F(n−1))

階乗は n!=n×(n−1)!、0!=1 と再帰的に定義でき、そのまま再帰関数として書ける。

この問題で必要なこと

n!=n×(n−1)! で、0!=1 が終了条件。return n × factorial(n − 1) とすればカが正解。

ひっかけ

factorial(n) を自分自身で呼ぶと終わらない(ア)。n を掛け忘れる(イ)、2 項だけ掛ける(エ)といった定義の読み違いを誘う。

この知識を科目Aの過去問で覚える レッスン「再帰呼出しと引数の渡し方」で学ぶ

同じ知識の過去問