2011年6月15日水曜日

anarchy golf - Difference of 回答編

anarchy golf - Difference of

あまりいぢってる暇の無いまま終わりました。

僕のコードは
char*p;
main(a){
for(gets(&a);p&&*p||~-puts(p=&a);)
*p++=p[1]?abs(*p-p[1])+48:0;
}

Topのhinoeさんは

main(a,p)
char*p;
{
for(;*++p||!gets(p=&a)-puts();)
*p=p[1]?abs(p[1]-*p)+48:0;
}

ぱっと見、一番違うところはgetsの位置。
この問題では入力は一行だけなので二回目以降のgetsの返り値はnullになるので
出力が一文字だったときに終了ということになりますね。

あとは*pをmain第二引数に当てることで初回の判定を削ってます。

ちなみにinaniwaさんの改良版ではt=p[1]とすることで文字数を削ってます。
これ、一度試してたはずなんだけど、なんでやめちゃったんだっけなぁ?^^;;

0 件のコメント:

コメントを投稿