FizzBuzz

なんか流行ってるらしい。

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

元ネタは、どうしてプログラマに・・・プログラムが書けないのか?というエントリーらへんからきてるらしい。TAKESAKOさんとこで知った。

できる限り短く書く勝負らしいですが、一時期流行ったPerlワンライナーにも乗り遅れた私にはどうにも…。自力で導き出したのはここまで。長いっす…。

perl -le 'print $_%15==0?"FizzBuzz":$_%5==0?"Buzz":$_%3==0?"Fizz":$_ for 1..100'

ちなみにTAKESAKOさんのは、これ。

perl -e'die+map{(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/}1..1e2'

人の書いたのを見てるとスゴイ参考になるなぁ。