私は普通に実装してみました。
#include
int main(void) {
int offset[16]={0,0,0,3,0,12,3,0,0,3,12,0,3,0,0,8};
int offset2[16]={1};
int i;
int now;
for(i=1,now=1;i<=100;i++) {
printf("%d\0Fizz\0FizzBuzz"+offset[now],i);
putchar('\n');
now=(now+1)&15;
now+=offset2[now];
}
return 0;
}
追記
メモ:他の人の最近のFizzBuzz
http://dixq.net/forum/blog.php?u=781&b=3370
http://dixq.net/forum/blog.php?u=955&b=3371