第52問 じゃんけんの勝ち負け(3つでひとまわり)
じゃんけんの手を グー=0、チョキ=1、パー=2 という数字で表します。Aさんはパー(2)、Bさんはグー(0)を出しました。グー→チョキ→パー→グー…と3つの手はひとまわりしているので、sa = te_a - te_b + 3 を3でわったあまり kekka を見ると、0のときはあいこ、そうでないときは勝ち負けが決まります。Aさんの勝ちになるのは kekka がいくつのときかな
難易度:★★★★☆(4/やや難しい)。単元:条件分岐。共通テスト「情報I」で使われるDNCL(共通テスト用プログラム表記)の穴埋め問題です。JavaScriptを有効にすると、このページでプログラムを組み立てて実行しながら解けます。
プログラム
te_a = 2
te_b = 0
sa = te_a - te_b + 3
kekka = sa % 3
表示する("kekkaは" + kekka + "です")
もし kekka == 0 ならば:
表示する("あいこ")
そうでなければ:
もし kekka == [A] ならば:
表示する("Aさんの勝ち")
そうでなければ:
表示する("Bさんの勝ち")
空欄 [A] に当てはまるものを、次の選択肢から選びます。
選択肢
ヒント
グー(0)→チョキ(1)→パー(2)→グー…と手は3つでひとまわりします。Aさんはパー(2)、Bさんはグー(0)なので sa = 2 - 0 + 3 = 5。これを 3 でわったあまりにすると 5 % 3 = 2 です。じつは「グーがチョキに勝つ」「チョキがパーに勝つ」ときも同じ 2 になるので、kekka が 2 のときがAさんの勝ちです
解答
よくある間違い
- [A]
1 … kekka は 5 % 3 = 2 になるので、kekka == 1 は成り立たず「Bさんの勝ち」と表示されてしまいます。でもパー(2)はグー(0)に勝ちます。グーがチョキに勝つとき(2-1+3)% 3、チョキがパーに勝つとき(1-2+3)% 3 もどちらも 2 です。Aさんが勝つ番号は 2 のほうです
- [A]
3 … 3 でわったあまりは 0・1・2 のどれかにしかならないので、kekka == 3 は一生成り立ちません。だれが何を出しても「Bさんの勝ち」になってしまいます。あまりとしてありえる 2 を選びましょう
- [A]
0 … kekka == 0 のときは、ひとつ外側の「もし」ですでに「あいこ」と表示されています。だから内側にもう一度 0 と書いても、そこには絶対にたどりつきません。ここに書くのはAさんが勝つときの番号 2 です
この単元の解説動画
ほかの問題