この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

この問題は、アルゴリズムの追跡と数値の関係性を理解する重要な問題です。流れ図は最大公約数を求めるユークリッドの互除法に似た構造を持っており、与えられた実行順序に従って値が変化していく過程を追跡する必要があります。 まず、実行順序に従って変数の変化を追ってみましょう。 1. 初期値設定:m←a, n←b 2. m:nを比較(≠) 3. m:nを比較(>) 4. n←(n-m)に進まず、m←(m-n)に進む 5. 再度m:nを比較 6. m:nを比較(>) 7. m←(m-n) この流れで3a=2bの関係が成り立つ場合、例えばa=6, b=9のとき: m=6, n=9 → m=6, n=3 → m=3, n=3となり、 m=nで終了するパターンになることが分かります。この関係性が問題の実行順序と一致します。

なぜ他の選択肢は違うのか

選択肢 ア
a=2bの場合、最初からmがnの2倍になってしまい、与えられた実行順序と異なる流れになってしまいます。例えばa=4, b=2の場合、m=4, n=2となり、与えられた順序とは違う経路を通ることになります。
選択肢 イ
2a=bの場合、最初からnがmの2倍になってしまい、与えられた実行順序と合致しません。この場合、nからmを引く処理が連続して行われ、指定された順序にならないことが分かります。
選択肢 ウ
2a=3bの場合、mとnの初期値の比率が適切ではなく、与えられた実行順序を実現できません。この関係では、処理の途中で余りが生じ、指定された順序での実行が不可能になります。

解くときのポイント

このような問題を解くためのコツは以下の通りです: 1. まず与えられた実行順序を注意深く確認する 2. 具体的な数値(例:a=6, b=9)を当てはめてシミュレーションしてみる 3. 変数の変化の過程を紙に書き出して追跡する 4. 最終的にm=nで終わる必要があることを意識する 5. ユークリッドの互除法との類似性に注目する また、このような問題は基本情報技術者試験でよく出題される重要なパターンの一つです。アルゴリズムの追跡問題を解く際の基本的なアプローチとして覚えておくと良いでしょう。