2007年05月11日 anarchy gold [長年日記]
_ FizzBuzz
素直に書くとこんな感じ。
#include <stdio.h> #include <string.h> int main(void) { char str[16]; int i; for (i = 1; i <= 100; i++) { str[0] = '\0'; if (!(i % 3)) { strcat(str, "Fizz"); } if (!(i % 5)) { strcat(str, "Buzz"); } if (!str[0]) { sprintf(str, "%d", i); } printf("%s\n", str); } return 0; }
これ(↑)をこんな感じ(↓)にしてみました。
int main(){int i=0;while(i++<100){char f[]="Fizz",b[]="Buzz";i%3?*f=0:0;i%5?*b=0:0;*f|*b?printf("%s%s\n",f,b):printf("%d\n",i);}}
うーん。今の私には、これ以上はどんなに頭を絞っても出てきませんでした。
サイズは131バイト。これならtwitterでも送れるから良しとしよう。
今日の時点でC言語部門42位かぁ。