こんにちは、せとなお(@setonao1)です。
皆さんは、FizzBuzz(フィズ・バズ)というゲームを知っているでしょうか?
英語圏で長距離ドライブ中や飲み会の時に行われる言葉遊びのことです。
1から順番に数字を読み上げ、3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、両者で割り切れる場合(つまり15で割り切れる場合)は「Fizz Buzz」を数の代わりに発言するというゲームです。
プログラマーの間では、プログラム言語を問わず作れるということで、初歩的なプログラムを作成する能力があるかを見分けるテストして流用されたりすることもあります。
そこで今回は、FizzBuzz問題の解き方について、Javaのfor文を使って解説していきたいと思います。
目次
FizzBuzz問題の仕様確認
- 1から100までの数を出力する
- 3の倍数の場合は、数字の代わりに”Fizz”と出力する
- 5の倍数の場合は、数字の代わりに”Buzz”と出力する
- 3の倍数であり、かつ、5の倍数の場合には”FizzBuzz”と出力する
Javaで整数がある数の倍数であるかどうかを調べるには、剰余演算子である「%」を使います。
x % a == 0(つまり余りが0)の時は、整数xはaの倍数であるということができます。
x % a == 0以外(つまり余りが存在する)時は、整数xはaの倍数ではないと判定できます。
Javaのサンプルプログラム
一般的には、for文を用いた以下のようなコードになると思います。
解法のポイントは、if文の一番初めに3の倍数かつ5の倍数の判定を記述していることです。
これがif文の一番下に書いてあると、「FizzBuzz」という文字列は表示されなくなってしまいます。
まとめ
今回は、Javaのfor文を使ってFizzBuzz問題を解く方法を解説しました。
この問題はコードが書けないプログラマー志願者を見分ける手法として提唱され、新入社員研修の一問目に使用されたりもしています。
これからエンジニアを目指していきたいと考えている方は、ぜひ参考にしてみてください。
コメント