使えないプログラマー: FizzBuzz問題

http://tukaenai-pg.cocolog-nifty.com/blog/2007/07/fizzbuzz_51bf.html

FizzBuzz問題FizzBuzz問題というプログラマ適性問題(?)が話題になっているらしい。

以下、(http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm)から引用

「1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

まで読んだ。自分でコードを書いてみた(Java で)。

public class Hoge {

    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            boolean fizz = (i % 3 == 0);
            boolean buzz = (i % 5 == 0);
            if (fizz && !buzz) {
                System.out.println("Fizz");
            } else if (!fizz && buzz) {
                System.out.println("Buzz");
            } else if (fizz && buzz) {
                System.out.println("FizzBuzz");
            } else if (!fizz && !buzz) {
                System.out.println("" + i);
            } else {
                throw new IllegalStateException();
            }
        }
    }
}

さて、答えは???

ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。
怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。
自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。」

とのこと。
なんだ、コーディングの速さを問う問題だったのか。
てっきり、どうエレガントにとか、分かりやすくとか、簡潔にとか、を問う問題なのかと思っていた。
あとで、EclipseHistory を見てみると、コーディングにおよそ3分かかっていた。w