« Cache::Adaptive の使い方 | メイン | Cache::Adaptive を簡単に使う方法 »
2007年05月12日
FizzBuzz - Perl 使って50バイト
1. 目指せ最短 (perl -eも含めて56byte)
TAKESAKO @ Yet another Cybozu Labs: FizzBuzz - Golf Challenge
Perl を使ったワンライナーという条件でしょうか、だとすると、まだ短くする余地がありました。
seq 100|perl -ple'$.%5or$_=Buzz;$.%3||s/\d*/Fizz/' # 50バイト
ただ、Language Ranking では bash が1位で43バイトなわけで、あと7バイト削る必要があるって、それはさすがに Perl では無理そう。ランキングを見るに、おそらく awk を使うのが正しいんでしょうけど、私には追いつけそうにありません。この辺が限界でした。
seq 100|awk 't=NR%3?NR:$2="Fizz",$0=NR%5?t:$2"Buzz"' # 52バイト seq -f'%g Fizz Buzz FizzBuzz' 100|awk '$0=$(!($1%3)+!($1%5)*2+1)' # 65バイト
投稿者 kazuho : 2007年05月12日 13:58
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1264