2011年6月9日木曜日

anarchy golf - Basic Code Golf 解答編

anarchy golf - Basic Code Golf

とりあえず、今回のポイントは文字読み込みと出力に何を使うか、という話。

read、putcharでやろうと思ったけど、readが使えるならwriteもつかえるんじゃね?
ってことでやってみた。
stdoutのファイルポインタ値はいくつかな?って調べてた中で0(stdin)に出力すると
何も出なかった。ヘッダ調べてどうやらstdoutは1らしいってことで1に出力すると出た。

これ、使えるんじゃね?と思ってこうなった。
writeの2番目以降の引数はreadと同じなので省略可。
ダブルクォーテーションが来るたびフラグを反転。
フラグによって空白出力/非出力を切り替えです。

c;
main(a){
for(;read(0,&c,1);a^=c==34)
write(c>32*a);
}

ほかのトップの人はwriteの中が違うくらいだと思う。3パターンくらい考えてこれにしときました。

0 件のコメント:

コメントを投稿