プログラミング学習において、基本的な能力が身に付いているかどうかをテストするための問題の1つとして、「FizzBuzz問題」があります。
今回は、このFizzBuzz問題の概要と、詳しい解き方を解説します。
FizzBuzz問題とは?
FizzBuzz問題とは、次のようなルールに沿って数字や文字列を出力するという問題です。
- 1から100までの数字を考えます。
- 数字が3で割り切れる時は”Fizz”を出力します。
- 数字が5で割り切れる時は”Buzz”を出力します。
- 数字が3と5両方で割り切れる時は”FizzBuzz”を出力します。
- 数字が3と5どちらでも割り切れない時は、数字そのものを出力します。
問題を解くために必要となる知識
この問題を解くためには、プログラミングで使うさまざまな手法を知っておく必要があります。
①print()メソッド
文字列や数字を出力するためには、print()メソッドを使う必要があります。
②条件分岐
ある数字が3で割り切れるか、5で割り切れるかによって処理が異なるため、条件分岐をコードに盛り込む必要があります。
③ループ処理
1から100までの数字について1つずつ同じことを繰り返すため、forやwhileなどのループ処理の使い方を身に付けていることが求められます。
回答例
実際にFizzBuzz問題を解いてみましょう。
for i in range(101):
if i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
elif i % 15 == 0: #3と5で割り切れる=15で割り切れる
print("FizzBuzz")
else:
print(i)
では、上記コードを詳しく解説します。
まず、1から100までの数字について考えるため、forループではrange(101)とします。条件分岐では、数字が3、5、15それぞれで割り切れるかどうかで分岐しています。最後に、条件に当てはまらなかった場合に数字そのものを出力しています。
ifやforが一緒に出てくるため、少し複雑に思われるかもしれません。この問題がすんなりできたという方はある程度プログラミングのスキルが身に着いたと考えて良いのではないかと思います。
上手くできなかったという方は、条件分岐やforループの書き方を復習してみてください。