コードだけでは動かないFizzBuzzコードができましたw
$ cat __f_bf__fb_f__z.c
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char **argv)
{
int i = 0;
while(1) {
switch(argv[0][i]) {
case 0: return 0;
case 'f': puts("Fizz"); break;
case 'b': puts("Buzz"); break;
case 'z': puts("FizzBuzz"); break;
default: printf("%d\n", i+1);
}
i++;
}
}
待って。なんかまちがってるw
$ ./__f_bf__fb_f__z
1
2
3
4
Fizz
6
Buzz
Fizz
9
10
Fizz
Buzz
13
Fizz
15
16
FizzBuzz
うむww
$ PATH=.
$ __f_bf__fb_f__z
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
相対パスでも起動できる子になりましたw
$ cat __f_bf__fb_f__z.c
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>
int
main(int argc, char **argv)
{
int i = 0;
while(1) {
switch(basename(argv[0])[i]) {
case 0: return 0;
case 'f': puts("Fizz"); break;
case 'b': puts("Buzz"); break;
case 'z': puts("FizzBuzz"); break;
default: printf("%d\n", i+1);
}
i++;
}
}
カウンタも使わないようにしたよw
$ cat '12F4BF78FB;F=>Z.c'
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>
int
main(int argc, char **argv)
{
char *c = basename(argv[0]);
while(1) {
switch(*c) {
case 0: return 0;
case 'F': puts("Fizz"); break;
case 'B': puts("Buzz"); break;
case 'Z': puts("FizzBuzz"); break;
default: printf("%d\n", *c - '0');
}
c++;
}
}