code golfや学校課題でメジャーなfizzbuzz問題を考えてみた事をメモ

javaで考えようとしたが、classやmainが必須のためcodegolfは向いていないのでphpで考える。
調べると一番codegolfのストロークが短くすむ言語はperlになっている。ruby,javascriptもいいらしい。さすがにC#,javaは入ってない。

fizzbuzz問題とは

1から100までの数を出力するプログラム。
3の倍数「fizz」、5の倍数「buzz」と出力し、3と5両方の倍数は「fizzbuzz」と出力する

一応頑張って限界まで考えたコード(82バイト)

<?for($i=0;@$i++<100;)echo($i%3&&$i%5?$i:($i%3?"":"fizz").($i%5?"":"buzz"))."¥n";

ネットから最短コードと言われている59バイトのfizzbuzz

<?for(;$i++<100;)echo$i%3?$i%5?$i:"":Fizz,$i%5?"":Buzz,"
";

これはオタクすぎて考えつかない。

ただ、関数を使う事も許されているので、標準ライブラリでメソッド名1文字のfizzbuzzメソッドができたらもっと短くなる。
codegolfの問題を考えるうちに日本語で文章を書くときも同様に短めにかきたくなってきた。

その他おすすめの備忘録

Tagged with:
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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