2009/07/03

2009/6/30のエントリ

ソースコードが一文字のHello,world!を作りましたが

今回はfizzbuzzに挑戦して見ました

ソースコードfizzbuzz.cの内容は

前回と同じく

A

のみ

肝心のコンパイラオプションは

gcc -DI="char *strrev(char *s){char *ret = s;char *t = s;char c;while( *t != '\ 0' )t++;t--;while(t > s) {c = *s;*s = *t;*t = c;s++;t--;}return ret;}void itoa(int value, char *buff){char *p;int mod;if( 0 > value ) {*buff++ = '-';value = -value;}p = buff;do{mod = value % 10 + 48;*p++ = (char)mod;value /= 10;}while(value);*p = '\ 0'; strrev(buff); }" -DX="write(1,&F,1);write(1,&i,1);write(1,&z,1);write(1,&z,1);" -DY="write(1,&B,1);write(1,&u,1);write(1,&z,1);write(1,&z,1);" -DA="I int main(void){int j;int k;char F='F';char B='B';char i='i';char u='u';char z='z';char N=0x0A;char buf[16];for(j=1;j<=100;j++){if(j%15==0){X Y}else if(j%5==0){Y}else if(j%3==0){X}else{itoa(j,buf);for(k=0;buf[k] != '\ 0';k++){write(1,&buf[k],1);}}write(1,&N,1);}return 0;} " fizzbuzz.c

です

マクロIの部分は

http://oshiete1.goo.ne.jp/qa3355671.htmlの10番の回答を

勝手に使わさせてもらいました

前回!が使えない的な事を言いましたが

なんか全部使えないわけじゃなさそうです

文字の次に!があるのがだめなのか?

スペースをいれればいけるのか?

書き下したコードをのせようと思いましたが

のせるとなぜか全体のプロポーションが崩れるので

別にします

このエントリに

http://tyosasurainootaku.blogspot.com/2009/07/fizzbuzzc.html

↑でも大分崩れてますけど

関係無いけど

こんなふうにソースコードが一文字で

コンパイラオプションでするプログラミングの事を

一文字(ひともじ)プログラミングとでも名付けようか

0 件のコメント: