Good idea. Enhancing:
If, lambda, logical operators except == and string concatenation free version (Python 3)
for x in range( 1, 101 ):
print( [ x,'Buzz','Fizz','FizzBuzz' ][ (x%3==0)*2 + (x%5==0) ] )And also C based on the same idea as my Python (but this has to ? for 0s):
int i;
char* a[] = { 0, "Buzz", "Fizz", "FizzBuzz" };
char* f[] = { "%s\n", "%d\n" };
for ( i = 1; i < 101; i++ ) {
char* s = a[ (i%3==0)*2 + (i%5==0) ];
printf( f[!s], s ? s : i );
}Don't ruin that version with an if statement.
Use this and avoid it( and the second array as well ):
char * a[] = { "%d\n" , "Fizz\n" , "Buzz\n" , "FizzBuzz\n" } ;
If free version.