2023年4月から基本情報技術者の試験制度が変更されました。
試験制度は変更されたものの科目B(旧:午後問題)の重要さは変わりません。
出題方式は「多肢選択式」で以前と同じですが、データ構造及びアルゴリズムが8割、情報セキュリティが2割の割合で出題される点が大きく変わっています。
合格基準点は600点以上/1000点満点中、つまり6割以上取れれば合格になります。
サンプル問題では前半16問が「データ構造及びアルゴリズム」の問題。残り4問が「情報セキュリティ」の問題。となっています。
サンプル問題は公式にIPAから出されている貴重な情報です!
早速、問題を見ていきましょう!
問4 (データ構造及びアルゴリズム)
設問
解答
答え:「エ」
解説
最大公約数を導き出す処理に関する問題です。
※ユークリッドの互除法の実装に関数もんだです。
まず、aとcに入る選択肢について考えます。
(1)の説明に最大公約数の性質として、「 num1 と num2 が等しいとき、 num1 と num2 の最大公約数は num1 である」という説明があります。
2つの正の整数について、(2)もしくは(3)の処理を1回行っただけでは num1 と num2 が等しくなるとは限りません。 num1 と num2 が等しくなるまで(2)もしくは(3)の処理を繰り返す必要があるため、繰返し処理を行うwhile文が適切です。したがって、正解肢は「ウ」または「エ」のどちらかになります。
次に、bに入る選択肢について考えます。
条件に合致するときに「x ← x - y」の処理が起こります。つまり、num1 に num1 - num2 を代入する処理を行っています。
(2)の説明より、この処理を行うのは 「num1 が num2 より大きいとき」になるので、x > yが当てはまるときとなります。
したがって、「while文」と「x > y」の組合せが適切です。
よって、正解の選択肢は「エ」になります。
最後に
いかがだったでしょうか。
ユークリッドの互除法はアルゴリズムの問題としては有名です。試験当日にも形を変えて出題される可能性があるので、理解しておくと良いでしょう!
今回の問題は、if文・for文・while文の性質を理解していれば簡単に解ける問題です。
少し難しそうに見える問題ですが、条件を確認して焦らずに問題に取り組み、ケアレスミスのないようにして確実にとっていきましょう!
反対にこの問題でよくわからない点・疑問点が出てくる方はもう一度該当部分の参考書を見直してみましょう!