階乗を求める処理【基本情報技術者試験 科目B サンプル問題】

(令和4年度12月公開) 基本情報技術者試験 サンプル問題 科目B 問7のブログのアイキャッチ画像 基本情報技術者試験 科目B 公開問題

← 科目Bの公開問題一覧へ戻る

 基本情報技術者試験の科目Bのサンプル問題を題材に,階乗を求める処理について学習します。この問題では,階乗の計算方法と,その計算をプログラムで表す方法を確認します。

広告

(令和4年度12月公開) 基本情報技術者試験 サンプル問題 科目B 問7

問 次のプログラム中の       に入れる正しい答えを,解答群の中から選べ。

 関数 factorial は非負の整数 n を引数にとり,その階乗を返す関数である。非負の整数 n の階乗は n が 0 のときに 1 になり,それ以外の場合は 1 から n までの整数を全て掛け合わせた数となる。

〔プログラム〕

○整数型: factorial(整数型: n)

 if (n = 0)

  return 1

 endif

 return      

解答群

ア (n - 1) × factorial(n)イ factorial(n - 1)
ウ nエ n × (n - 1)
オ n × factorial(1)カ n × factorial(n - 1)

【解答】カ

【解説】

階乗は,n! = n × (n - 1)! と表すことができる。例えば,4! は,4 × 3!,3! は 3 × 2! のように,1つ小さい数の階乗を使って表すことができる。この関係をプログラムで表すと,n が0でない場合は,n × factorial(n - 1) となる。factorial(n - 1) は,関数 factorial が自分自身を呼び出しているため,このような処理を再帰処理という。

一方,0の階乗は 0! = 1 なので,n が0になったら 1を返して処理を終了する。この条件が,再帰処理を終了するための終了条件となる。したがって,空欄には n × factorial(n - 1) が入る。

たとえば,factorial(4) の実行結果は,次のとおりである。

「(令和4年度) 基本情報技術者試験 サンプル問題 科目B 問7」の解答画像

この問題のポイント

 この問題から学べることは,

  • 階乗の計算方法
  • 階乗の計算をプログラムで表す方法
  • n × factorial(n - 1) のように,1つ小さい値の階乗を利用して計算する方法
  • 再帰呼出しによる処理の流れ

です。特に,階乗の計算方法と,その計算をプログラムで表す方法を理解しておきましょう。

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

科目Bのアルゴリズム・擬似言語を基礎から学びたい方に。私も実際に読んでみましたが,変数・配列・リストなどの基礎から,擬似言語,例題・演習問題まで段階的に扱っており,取り組みやすい構成になっています。
¥2,200 (2026/09/17 08:58時点 | Amazon調べ)

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ,このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告