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

平成28年度 春期 午前 問8

アルゴリズム

流れ図に関する問題

x と y を自然数とするとき,流れ図で表される手続を実行した結果として,適切なものはどれか。

図(書き起こし): 流れ図。

          ( 開始 )
             ↓
      ┌─────────────┐
      │  q ← 0      │
      │  r ← x      │
      └──────┬──────┘
             ↓
  ┌──> < r < y > ──Yes──> ( 終了 )
  │          │
  │          No
  │          ↓
  │   ┌─────────────┐
  │   │ r ← r − y   │
  │   │ q ← q + 1  │
  │   └──────┬──────┘
  └──────────┘

逐語で言い直すと: 開始 → q に 0,r に x を代入 → 判定「r < y」が Yes なら終了,No なら
「r ← r − y」「q ← q + 1」を実行して判定へ戻る。

q の値r の値
アx ÷ y の余りx ÷ y の商
イx ÷ y の商x ÷ y の余り
ウy ÷ x の余りy ÷ x の商
エy ÷ x の商y ÷ x の余り
答えと解説を見る

✓ これが正解イx ÷ y の商 x ÷ y の余り

解説

yを引ける回数がx÷yの商、残りが余りです。

この流れ図は、初期値としてqに0を、rに元の値xを置き、rがy以上である限り、rから毎回yを1回ずつ引きながらqを1ずつ増やす形になっています。判定の軸は、rから何回yを引けたかと、最後に残った値の意味の2つを取り出せるかどうかです。yを引く回数はxをyで割ったときの整数の割り算の商、そして最後に残る値、つまりrがy未満になったときの値は、その割り算の余りに一致します。したがって処理が終わった時点での2つの変数は、xをyで割ったときの商が回数を数えたqに、xをyで割ったときの余りが引き算の残りとしてrに、それぞれ現れます。ここで扱っているのは、除算を減算の繰返しで実現する古典的な考え方で、余りと商をそれぞれ別の変数に取り出す型です。

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

出典:平成28年度 春期 基本情報技術者試験 午前 問8(改変:原典の図表をテキストに書き起こした)

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