スポンサーリンク

基本情報技術者試験 | 令和5年度(科目A) [問11] 過去問解説

問題

問11

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

  • a = 2b
  • 2a = b
  • 2a = 3b
  • 3a = 2b

[出典:基本情報技術者試験 令和5年度(科目A) 問11]

正解

正解は「」です。

解説

 この問題は、与えられた流れ図における処理の実行順に注目して、最終的に「mの値を印字する(⑥)」まで至るための適切な初期値の関係を導き出すものです。流れ図の内容は、ユークリッドの互除法に似た処理で、mとnの最大公約数を求めるような構造になっています。

 与えられた流れ「①→②→③→⑤→②→③→④→②→③→④→②→⑥」に従って、各ステップでのmとnの変化を追ってみると、以下のようになります。

  1. 初期値:m ← a、n ← b
  2. 比較:m ≠ n(分岐③へ)
  3. m : n の大小比較(m > n →⑤、m < n →④)
  4. 最初は⑤が実行され、n ← (n – m)
  5. 次に④が2回続けて実行され、m ← (m – n)が2回行われる
  6. そしてようやく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つの整数の最大公約数を求めるアルゴリズムで、より大きい方から小さい方を引き、繰り返します。

対策

 流れ図の問題は、処理の追跡と分岐の理解がポイントです。変数の初期値と処理の結果を具体的な数値で試しながら、流れを手でなぞる練習を繰り返すと、動作の意図がつかみやすくなります。特に分岐が複雑な場合は図解を併用しましょう。


タイトルとURLをコピーしました