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