問題
問11
次の流れ図において、
①→②→③→⑤→②→③→④→②→③→④→②→⑥
の順に実行させるために、①においてmとnに与えるべき初期値aとbの関係はどれか。ここで、a、bはともに正の整数とする。

- a = 2b
- 2a = b
- 2a = 3b
- 3a = 2b
[出典:基本情報技術者試験 令和5年度(科目A) 問11]
正解
正解は「エ」です。
解説
この問題は、与えられた流れ図における処理の実行順に注目して、最終的に「mの値を印字する(⑥)」まで至るための適切な初期値の関係を導き出すものです。流れ図の内容は、ユークリッドの互除法に似た処理で、mとnの最大公約数を求めるような構造になっています。
与えられた流れ「①→②→③→⑤→②→③→④→②→③→④→②→⑥」に従って、各ステップでのmとnの変化を追ってみると、以下のようになります。
- 初期値:m ← a、n ← b
- 比較:m ≠ n(分岐③へ)
- m : n の大小比較(m > n →⑤、m < n →④)
- 最初は⑤が実行され、n ← (n – m)
- 次に④が2回続けて実行され、m ← (m – n)が2回行われる
- そしてようやくm = nとなり、⑥で値を印字
このようにmとnの大小が交互に変化していき、最終的にmとnが等しくなるためには、はじめの値が「a : b = 3 : 2」の関係になっていないと上記の実行順になりません。
例えば、a = 3k、b = 2k(kは任意の正整数)とすると、以下のような値の変化になります: 初期 → (3k, 2k) → (3k, k) → (2k, k) → (k, k) → 終了 この変化は、まさに問題文に示された通りの実行順になります。 したがって、aとbの関係は「3a = 2b」、すなわち「エ」が正解です。
ア(a = 2b):
この関係では、mとnの差が大きくなりすぎ、指定された処理順(⑤→④→④)にはなりません。
イ(2a = b):
これはa : b = 1 : 2を意味し、流れ図の処理ではまず④が選ばれるため、最初に⑤が実行される条件を満たしません。
ウ(2a = 3b):
a : b = 3 : 2 に近いですが、比が逆であり、正しい分岐順序が得られません。
難易度
この問題は流れ図の動作を丁寧に追う必要があり、アルゴリズム的思考を求められる中級レベルの問題です。特に変数の値の変化に注目し、実行の流れを図から読み解けるかが鍵となるため、初学者にはやや難しく感じられるかもしれません。
用語補足
流れ図(フローチャート):
処理の手順や分岐、繰返しを視覚的に表現する図で、アルゴリズムの理解や説明に用いられます。
分岐処理:
条件によって処理の流れを変える構造です。たとえば「m ≠ n」などの条件に応じて別の処理へ進みます。
ユークリッドの互除法:
2つの整数の最大公約数を求めるアルゴリズムで、より大きい方から小さい方を引き、繰り返します。
対策
流れ図の問題は、処理の追跡と分岐の理解がポイントです。変数の初期値と処理の結果を具体的な数値で試しながら、流れを手でなぞる練習を繰り返すと、動作の意図がつかみやすくなります。特に分岐が複雑な場合は図解を併用しましょう。