Fizz-Buzz in JavaScript ― 2007年05月10日 02時27分
一部で Fizz-Buzz 問題がはやってるみたいで。私が anarchy golf の FizzBuzz 用に JavaScript で書いたのは以下の 58 バイト。ここにいたるまでには 2 分どころではない時間がかかってるけど。
for(i=0;i++<100;)print((i%3?"":"Fizz")+(i%5?"":"Buzz")||i)
今のところ JavaScript の最短は 56 バイト。どうすれば縮められるのかさっぱり思いつかない。
ちなみに、anarchy golf をやるときには大体以下のような変換をしていた。
変換前 | 変換後 | 差 |
---|---|---|
i==1?a:b |
i-1?b:a |
-1 バイト |
a=readline();b=readline(); |
b=(r=readline)(a=r()); |
-4 バイト |
for(;;){a;b} |
for(;;)a,b; |
-1 バイト |
print("s "+x) |
print("s",x) |
-1 バイト |
/re/.exec(s) |
/re/(s) |
-5 バイト |
コメント
_ どうでしょう? ― 2007年05月10日 06時50分
i=0;while(i--)print((i%3?"":"Fizz")+(i%5?"":"Buzz")||i)
_ nanto_vi ― 2007年05月10日 20時28分
それだと何も出力されませんが?
_ 通りすがり ― 2007年05月11日 17時31分
http://d.hatena.ne.jp/Ozy/20070225 これじゃないでしょうか
_ nanto_vi ― 2007年05月13日 01時56分
なるほど。そういう風に一時変数を使うことで文字列リテラルと括弧の数を減らすんですか。紹介ありがとうございました。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://nanto.asablo.jp/blog/2007/05/10/1497814/tb