多分これが限界?

CでFizzBuzzの続き。
削りに削って、74byte。

main(a){for(;a<101;puts("Buzz"-a*a++%5))printf(a%3?a%5?"%d":0:"Fizz",a);}

だが、これはどっかから拾ってきたソースで、Ubuntuでは正しく動作しませんでした。もともと環境依存なプログラムなので仕方ないけど…。このプログラムはfor文のputs関数がミソで、-a*a%5の結果が0でない場合、”Buzz”より前のポインタをさすので、Buzzと表示されない仕組み(だと思う)。これは思いつかなかった…
IOCCCといい、プログラミングって可読性大事ですね

Programming

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>