FizzBuzz 以前

ご注意:このページには FizzBuzz 問題の解答はありません。

FizzBuzz 問題が流行ったことがあります。

「1」「2」「3」……と点呼するのですが,3の倍数のときは Fizz(フィズ),5の倍数のときは Buzz(バズ),両方の倍数のときは FizzBuzz(フィズバズ)と,数の代わりに言わなければなりません。

これを(例えば100まで)プログラムする問題をやってみましょう。

ヒント1:単に点呼するだけなら次のようにします。

for i in range(1, 101):
    print(i)

ヒント2:偶数か奇数かを言う場合には次のようにします。

for i in range(1, 101):
    if i % 2 == 0:
        print(i, "は偶数")
    else:
        print(i, "は奇数")

ヒント3:場合わけは elif を使って何段階でもできます。

for i in range(1, 101):
    if i % 2 == 0:
        print(i, "は偶数")
    elif i % 3 == 0:
        print(i, "は奇数,3で割れる")
    else:
        print(i, "は奇数,3で割れない")

これらを参考にして FizzBuzz 問題を解いてみましょう。

この問題は,プログラミングがわかる人でも論理的思考ができないと失敗する問題として有名です。どういうところで失敗するのでしょうか。その場合,どういう指導をしてあげればいいでしょうか。