Fizz-Buzz問題

どうしてプログラマに・・・プログラムが書けないのか?

かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。やや小さな問題 (連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。
それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。これはイギリスの学校の子供たちがよくやっている遊び(というかやらされている遊び)にちなんで名付けた。Fizz-Buzz問題の例はこんな感じだ。
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。

上の文章をある社員が社内SNSに書き込んだところ、無言でみんながFizzBuzz問題にチャレンジしはじめた。
以下、社内SNSのレス


■ひろし(事業本部長)
所要時間1分ぐらい。まだプログラマとしてはいけそう。
http://hkawa.lolipop.jp/fizzbuzz.php
■mizzy(技術責任者)
3時間ぐらいかかりました。アセンブラで書いたら。
http://blog.mizzy.org/articles/2007/05/13/fizzbuzz-x86-assembler-for-linux
■萬○(プログラマ)
5分くらいかかってしかもバグがでました!
http://tai-hen.heteml.jp/fizzbuzz.php
■イエイリ(僕)
できました!!!!!!みてください!!
http://hbkr.jp/fizzbuzz.php
■佐藤(副社長)
20秒でした。
http://kentarow.heteml.jp/fizzbuzz.php
■河○(プログラマ)
http://senhana.heteml.jp/fizzbuzz.php
剰余算と除算どっちがどっちだったか悩みタイムロス。
無念。
■convexstyle(Flasher)
Flash にしてみました。
http://www.convexstyle.com/test/fizzbuzz.html
■pplog(デザイナ)
http://pplog.img.jugem.jp/20070911_405008.gif
けっこう難しかったです。
■daiskip(デザイナ)
おもったより楽だった
http://daiskip.com/images/fizzbuzz.jpg