10/04/24 13:09:56
>238の応用
その3 ifも忘れた人のため
#include <stdio.h>
char *fz[16]={"","%u ","%u ","Fizz ","%u ","Buzz ","Fizz ",
"%u ","%u ","Fizz ","Buzz ","%u ","Fizz ","%u ","%u ","FizzBuzz "};
int compact( unsigned int n ) {
n = ( n & 0x0f0f0f0f ) + ((n>>4)&0x0f0f0f0f);
n = ( n & 0x00ff00ff ) + ((n>>8)&0x00ff00ff);
n = ( n & 0x0000ffff ) + ((n>>16)&0x0000ffff);
return ( n > 15 )? compact(n): n;
}
#define N 100
int main( ) {
unsigned int i;
for( i = 1; i <= N; ++i )printf( fz[compact(i)],i);
}