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まで動かし、各回の余りを確かめます。
- i=1: 1%3=1 → 表示しない
- i=2: 2%3=2 → 表示しない
- i=3: 3%3=0 → 「あたり」を表示(1回目)
- i=4: 4%3=1 → 表示しない
- i=5: 5%3=2 → 表示しない
- i=6: 6%3=0 → 「あたり」を表示(2回目)
- i=7: 7%3=1 → 表示しない
- i=8: 8%3=2 → 表示しない
- i=9: 9%3=0 → 「あたり」を表示(3回目)
- 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=割り切れる、が条件式の定番の読み方。