Endowsの日記: 雑記 : FizzBuzz 2
日記 by
Endows
FizzBuzz にいまさらチャレンジしてみる。
他に使える言語も無いのでいまさら C 言語。
どうせならと『変なモノ』狙いで、自力で可能なところまでソースコードを短くしてみた。
127Bytes。
#include<stdio.h>
int main(void){int i=1;for(;i<101;i++)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);return 0;}
色々削るともっと短くなるけど (#include と return と main の引数と戻り値の型ぐらいかな?) 個人的ポリシーにより残してます。
最短だとどんなコードになるのか気になる…。
-- 追記 --
もうちょっとだけ短くする。
#include<stdio.h>
int i;int main(void){for(;i++<100;)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);return 0;}
色々削る。
int i;main(){for(;i++<100;)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);}
これで 88Bytes 。これ以上は自力では無理か…?
-- 追記 6/11 22:00 --
もうちょっと短くなった。
int i;main(){for(;i++<100;)printf("%d\n\0Fizz\n\0FizzBuzz\n"+(14*!(i%5)^4*!(i%3)),i);}
86Bytes 。
他に使える言語も無いのでいまさら C 言語。
どうせならと『変なモノ』狙いで、自力で可能なところまでソースコードを短くしてみた。
127Bytes。
#include<stdio.h>
int main(void){int i=1;for(;i<101;i++)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);return 0;}
色々削るともっと短くなるけど (#include と return と main の引数と戻り値の型ぐらいかな?) 個人的ポリシーにより残してます。
最短だとどんなコードになるのか気になる…。
-- 追記 --
もうちょっとだけ短くする。
#include<stdio.h>
int i;int main(void){for(;i++<100;)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);return 0;}
色々削る。
int i;main(){for(;i++<100;)printf(i%3?i%5?"%d\n":"Buzz\n":i%5?"Fizz\n":"FizzBuzz\n",i);}
これで 88Bytes 。これ以上は自力では無理か…?
-- 追記 6/11 22:00 --
もうちょっと短くなった。
int i;main(){for(;i++<100;)printf("%d\n\0Fizz\n\0FizzBuzz\n"+(14*!(i%5)^4*!(i%3)),i);}
86Bytes 。
いろいろいじってみました (スコア:1)
f(int n)は単にf(n)とするとnがintになってくれるかと思ってたけど、C99的にはf(n)int n;{...}と、nの宣言をしなければならず、かえって長くなりました。
C89ではどうだったかなぁ。まあ、宣言不要だとしても全体で88文字。Endowzさんの例と変わらないわけですが。
巧妙に潜伏したバグは心霊現象と区別が付かない。
Re:いろいろいじってみました (スコア:1)
想像もつきません…。