FizzBuzz問題

ハテブみてたら「http://b.hatena.ne.jp/entry/okajima.air-nifty.com/b/2009/12/post-f94c.html」こんなんがあって、
それをたどって「http://okajima.air-nifty.com/b/2009/12/post-7adb.html」みたら「FizzBuzz問題」なるものの存在を知った。

最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」(Bizz Buzz の場合は 「Bizz」)、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」 (Bizz Buzz の場合は 「Bizz Buzz」)を数の代わりに発言しなければならない。

ようするにナベアツのあれなんだけど、「http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm」この記事を見たら出来ないやつがワンサカいると書いている。

んな訳ないだろと僕もやってみた。

php -r 'for($i=1;$i<101;$i++){if($i%3==0)echo"Fizz";if($i%5==0)echo"Buzz";if($i%3>0&&$i%5>0)echo $i;echo "\n";}'

よかった、100秒くらいだった


とおもったら、

実際に「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等


なんと!剰余禁止か!他は偶然クリア

php -r 'for($i=$f=$b=0;$i<100;$i++){$f++;$b++;$e="";if($f==3){$f=0;$e.="Fizz";}if($b==5){$b=0;$e.="Buzz";}if($e==""){$e.=($i+1);}echo($e."\n");}'

2分くらいだけど恐ろしくダサいぞ。。。

いけてるのはどんなんだろうか。


はてブこめんとみたら全ぜん長いな...無念