基本情報技術者試験 - 令和8年1月修了 - 問37

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

a = 2b
2a = b
2a = 3b
3a = 2b
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
同一問題 : 〔令5公問11〕〔令3修12問47〕〔平28修6問48〕〔平25修6問52〕〔平24修1問51
解説
流れ図(フローチャート)の実行順序から,変数mとnの初期値の関係を求める問題です。この流れ図は,①でmにa,nにbを代入した後,②でmとnが等しいかどうかを判定し,等しくなければ③でmとnの大小を比較して,mの方が大きければ④でmからnを引き(m←m-n),nの方が大きければ⑤でnからmを引く(n←n-m)という処理を,mとnが等しくなるまで繰り返しています。これは「ユークリッドの互除法」の実装です。

問題文で指定された実行順序は「①→②→③→⑤→②→③→④→②→⑥」であり,これは「①で初期化した後,②で不一致と判定され,③でm<nと判定されて⑤(n←n-m)を実行し,再び②で不一致,③でm>nと判定されて④(m←m-n)を実行し,最後に②で一致と判定されて⑥へ進む」という流れを意味します。

この一連の流れをa・bの式で表しながらたどっていくと,1回目はnがb-aに更新され,2回目はmがa-(b-a)=2a-bに更新され,最終的にmとnが等しくなる(2a-b=b-a)という条件から,3a=2bという関係が導かれます。

誤りの選択肢「ア」「イ」「ウ」は,いずれも似た形の比率ですが,実際にその値を代入して同じ手順でトレースすると,指定された順序(⑤の次に④,その次に⑥)どおりには進まず,途中で別の分岐に入ってしまうため誤りとなります。フローチャート問題は,変数の変化を一段ずつ文字式で書き出しながら,指定された経路と実際の分岐条件が一致するかを確認していくことが,正解への確実な近道です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる