« 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