過去問解きまくり研究所 ホーム

令和5年度 科目A 問11

アルゴリズム

初期値aとbの関係

次の流れ図において,

① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥

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

流れ図(①〜⑥は原典の番号):

開始
 ↓
① m ← a
   n ← b
 ↓
② m:n ──(≠)──→ ③ m:n
 │                    ├─(>)→ ④ m ← (m - n) → ②の手前に戻る
 │                    └─(<)→ ⑤ n ← (n - m) → ②の手前に戻る
 ↓(=)
⑥ m の値を印字
 ↓
終了
答えと解説を見る

✓ これが正解エ3a = 2b

解説

実行順をたどると、2a-b=b-aとなり3a=2bが導けます。

流れ図の②でmとnが等しいかを調べ、等しくなければ③で大小を比べて、大きい方から小さい方を引きます。見分ける軸は、指定された実行順のとおりに各比較の結果を式に直して並べることです。①でm=a、n=bとします。最初の③で⑤へ進むのでm<n、つまりa<bで、⑤によりn=b-aになります。次の③では④へ進むのでm>n、つまりa>b-aで、④によりm=a-(b-a)=2a-bになります。その後の②で⑥へ進むにはm=nが必要なので、2a-b=b-a、整理すると3a=2bです。たとえばa=2、b=3でたどると、n=1、m=1となり指定の順と一致します。これは、分岐の条件を不等式や等式に直して並べる、流れ図のトレースという考え方です。

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

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)