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

令和4年度 問79

アルゴリズムとプログラミング

流れ図に関する問題

流れ図で示す処理を終了したとき,xの値はどれか。

〔流れ図〕(JIS の流れ図記号で描かれた図)

開始
  ↓
x を98とする
  ↓
y を42とする
  ↓
┌─ 繰返し(ループ端の条件: x = y )(注)
│    ↓
│  < x : y > ── ≦ ──▶ y - x の計算結果を新たなyとする ─┐
│    │ >                                                  │
│    ▼                                                     │
│  x - y の計算結果を新たなxとする                          │
│    ↓◀────────────────────────────────────────────────────┘
└─ 繰返し
  ↓
終了

(注)ループ端の条件は,終了条件を示す。
答えと解説を見る

✓ これが正解イ14

解説

98と42を引き算でそろえていくと、どちらも14になります。

この流れ図は、二つの変数の値が等しくなるまで、大きいほうから小さいほうを引き続けるアルゴリズムです。ループ端の条件は終了条件だと注記があるので、xとyが等しくなった時点で抜けます。順に追うと、はじめは98と42で、xのほうが大きいのでxを98引く42の56にします。次も56と42でxが大きいので、xを14にします。すると14と42になり、今度はxのほうが大きくないので、yを42引く14の28にします。続いて14と28で、やはりyを28引く14の14にします。ここで両方が14になり、終了条件を満たして処理が終わります。これは引き算だけで最大公約数を求めるやり方で、98と42の最大公約数が14であることと一致します。一回で決めず、条件を満たすまで追いかけるのがこつです。よってxの値は14です。

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

この問題の用語

出典:令和4年度 ITパスポート試験 問79(改変:原典の図表をテキストに書き起こした)

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