ITパスポート 令和4年度 問79
アルゴリズムとプログラミング
流れ図に関する問題
流れ図で示す処理を終了したとき,xの値はどれか。
〔流れ図〕(JIS の流れ図記号で描かれた図)
開始 ↓ x を98とする ↓ y を42とする ↓ ┌─ 繰返し(ループ端の条件: x = y )(注) │ ↓ │ < x : y > ── ≦ ──▶ y - x の計算結果を新たなyとする ─┐ │ │ > │ │ ▼ │ │ x - y の計算結果を新たなxとする │ │ ↓◀────────────────────────────────────────────────────┘ └─ 繰返し ↓ 終了 (注)ループ端の条件は,終了条件を示す。
- ア 0
- イ 14
- ウ 28
- エ 56
答えと解説
✓ これが正解イ 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です。
ほかの選択肢の解説
- ア 0:0という値は、引き算をくり返して最後に何も残らなくなった場合に出てくる形です。この流れ図はどちらかが0になるまで続けるのではなく、二つが等しくなった時点で止まるので、0まで下がることはありません。終了条件の読み違いから出てくる値です。
- ウ 28:28という値は、途中でyがいったん取る値です。14と28になったところで手を止めるとこの値が目に入りますが、まだ二つが等しくないので処理は続きます。終了条件はxとyが等しくなることだと注記されています。
- エ 56:56という値は、最初の引き算でxが取る値です。ここでもまだ42と等しくないので、処理は続きます。一回だけ計算して答えを決めると、この値を選んでしまうので、終了条件を満たすまで最後まで追いかける必要があります。
関連用語
出典:令和4年度 ITパスポート試験 問79(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
同じ分野の問題
誤りを見つけたら報告する