CO-S10情報Ⅰ 対策問題

コンピュータとプログラミング思考・計算

次のプログラムを実行したとき、「あたり」は何回表示されるか。 (1) i を 1 から 10 まで 1 ずつ増やしながら繰り返す: (2) | もし i % 3 == 0 ならば: (3) ⎿ ⎿ 表示する("あたり")

解答・解説を見る

正解: 1

正答

1

この問題のポイント

剰余演算を使った条件分岐のトレース を問う問題です。「%が0=割り切れる=倍数」という読み替えがカギです。

解説

%は割り算の余りを求める演算です。たとえば 7 % 3 は「7を3で割った余り」で1になります。余りが0ということは割り切れるということなので、i % 3 == 0 は「iが3の倍数である」という条件の書き方になります。

iを1から10まで動かし、各回の余りを確かめます。

  1. i=1: 1%3=1 → 表示しない
  2. i=2: 2%3=2 → 表示しない
  3. i=3: 3%3=0 → 「あたり」を表示(1回目)
  4. i=4: 4%3=1 → 表示しない
  5. i=5: 5%3=2 → 表示しない
  6. i=6: 6%3=0 → 「あたり」を表示(2回目)
  7. i=7: 7%3=1 → 表示しない
  8. i=8: 8%3=2 → 表示しない
  9. i=9: 9%3=0 → 「あたり」を表示(3回目)
  10. i=10: 10%3=1 → 表示しない

よって表示は3回です。余りは 1→2→0→1→2→0… と周期的に繰り返すので、「1〜10の中の3の倍数は3, 6, 9の3個」と数えても同じ結論になります。

剰余(%)は、倍数判定・偶数奇数の判定(n%2)・「3人ずつのグループ分け」のような周期処理の定番で、共通テスト表記のプログラムでも毎回のように登場します。「%…==0と来たら倍数の判定」と即座に読み替えられるようにしておきましょう。

選択肢の確認

1.○ 3, 6, 9 の3回表示される。
2.× 4回になるのは12まで繰り返した場合(3,6,9,12)。
3.× 10回は条件分岐を無視して毎回表示した場合。
4.× 1〜10には3の倍数が確かに存在するので0回ではない。

ここだけは覚えよう

i % 3 == 0 は「iは3の倍数」 — 余り0=割り切れる、が条件式の定番の読み方。

関連問題

CO-S09CO-S11