ポイントBuzz
初段 / 目安 20分
事務局の壁に一枚の紙が貼ってありました。カメ師範からの挑戦状です。「会員番号1から30までを読み上げよ。ただし3の倍数のときは『ポイント3倍』、5の倍数のときは『クーポン進呈』、その両方に当たる番号では『大当たり』と叫べ」。
松田さんが小声で言います。「なんだかよく分からんが、これができんと次に進ませてもらえんらしい」。
完成条件
1から30までを順に、1行ずつ出力してください。
- 3の倍数のときは
ポイント3倍 - 5の倍数のときは
クーポン進呈 - 3の倍数でも5の倍数でもあるときは
大当たり - どれにも当たらないときは数字そのもの
- 全部で30行
冒頭の6行は次のとおりです。
プレーンテキスト
1
2
ポイント3倍
4
クーポン進呈
ポイント3倍繰り返しと倍数の調べ方
range(開始, 終わり) は、開始から終わりの直前までの整数を順に作ります。たとえば range(2, 6) は2、3、4、5です。for の内側は空白4文字で字下げし、その中の分岐の内側はさらに4文字下げます。
別の題材として、箱番号2から5のうち偶数だけを表示します。
Python
for box in range(2, 6):
if box % 2 == 0:
print(box)% は割った余りです。8 % 4 は0、9 % 4 は1です。余りが0ならその数の倍数です。2つの条件を and でつなぐと、両方が真のときだけ真になります。たとえば 12 % 4 == 0 and 12 % 6 == 0 は真ですが、8では偽です。今回の繰り返しはひな形にあります。自分で考えるのは、重なる条件をどの順番で調べるかです。
進め方
ひな形の「ここに書く」を完成させてください。pass は何もしない仮の行です。その行を自分の処理に置き換えます。準備済みのコードはそのまま使えます。手が止まったら、①方針、②使う構文、③部分解の順にヒントを開けます。
数分考えて手が止まったら、①から確認してください。本文の別の題材の例を動かし、今回の値に置き換えて考えましょう。
15 は3の倍数でもあり、5の倍数でもあります。3の倍数の判定を先に書くと、15 のときにそこで確定してしまいます。判定を書く順番が結果を決めます。
要件
- 1から30までを順に、1行ずつ出力すること
- 3の倍数のときは「ポイント3倍」と出すこと
- 5の倍数のときは「クーポン進呈」と出すこと
- 3の倍数かつ5の倍数のときは「大当たり」と出すこと
- どれにも当たらないときは数字をそのまま出すこと
ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです