FIzz Buzz とは
プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」(Bizz Buzz の場合は 「Bizz」)、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」 (Bizz Buzz の場合は 「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。
このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードがかけないプログラマ志願者を見分ける手法を Jeff Atwood が FizzBuzz問題 (FizzBuzz Question)として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている。
また、実際に「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等の縛りでゲーム条件を満たすコード記述の腕試しをする者が続出した。
有名な問題ですが、なんだかんだで1度も挑戦したことがなかったので書いてみました。
(function(win, doc) { "use strict"; fizzBuzz(100); function fizzBuzz(maxNum) { var i = 1, msg = ""; for (; i <= maxNum; i++) { if (!(i % 3)) { msg += "Fizz"; } if (!(i % 5)) { msg += "Buzz"; } doc.write((msg || i) + "<br />"); msg = ""; } } })(this, document);
まったくもって斬新さのないコードになってしまいましたが、まあこんなものでしょう。
今回は以上です。