xとyを自然数とするとき,流れ図で表される手続を実行した結果として,適切なものはどれか。
〔流れ図〕開始 → q←0,r←x → (ループ: rとyを比較) rを判定:もし r<y ならば終了へ、そうでなければ r←r−y,q←q+1 として判定へ戻る → 終了
正答2
解説
正解は2です。
図の流れ図は、qに0、rにxを入れたあと、r<yかどうかを判定します。
r<yでなければ、rからyを引いてqに1を加え、判定に戻ります。
r<yになったら終了します。
つまり、xからyを引けるだけ引き、引いた回数をqに数える処理です。
【計算】
例としてx=7、y=3でたどります。
最初はq=0、r=7です。
7<3ではないので、r=4、q=1になります。
4<3ではないので、r=1、q=2になります。
1<3なので終了し、q=2、r=1です。
7÷3は商2余り1なので、qが商、rが余りです。
【選択肢別解説】
1:× qとrの役割が逆です。
qは引いた回数なので商、rは引ききれずに残った値なので余りです。
2:○ xからyを繰り返し引いた回数qはx÷yの商になり、最後に残ったrはy未満なのでx÷yの余りになります。
3:× 割られる数はyではなくxです。
rの初期値がxで、そこからyを引いています。
4:× y÷xではなくx÷yです。
qが商、rが余りという対応は合っていますが、割り算の向きが逆です。
【ポイント】
減算を繰り返して割り算を行う手続は、流れ図の頻出パターンです。
具体的な数値を代入してトレースすると確実に判断できます。