階乗を求める処理【基本情報技術者試験 科目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つ小さい値の階乗を利用して計算する方法
  • 再帰呼出しによる処理の流れ

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

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

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

令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
基礎理論からコンピュータ・ネットワーク・データベースまで、基本情報技術者試験の全範囲をわかりやすく学べる定番テキストです。図解が豊富で、初学者にもおすすめです。

キタミ式イラストIT塾 基本情報技術者 令和08年
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく、独学学習との相性が良い一冊です。

令和08年 基本情報技術者 合格教本
試験範囲を体系的に学習したい方におすすめの教科書です。基礎理論の各テーマも丁寧に解説されており、理解を深めながら学習を進められます。

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

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

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

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

広告