カメヲラボ

主にプログラミングとお勉強全般について書いてます

Steps(5)

最短コード79B

最短コード1番乗りはid:kurimuraさんだ
http://d.hatena.ne.jp/kurimura/20060307/1141706414
というわけでkurimuraさんのコードを引用させてもらう。



main(a,b){
for(gets(b);
~scanf("%d%d",&a,&b);
printf("%d\n",a=sqrt(b-a)*2-1e-9));
}


.0001とすると80バイトになるので1e-9としている。これでもっとキワドイ入力にも耐えられるというわけだ。スバラシイ。これぞ最短コードという感じだ。


しかしただ引用というのもつまらないので、オマケとしてCの最短コード(と思われるもの)を公開しておく。



float sqrt(),a;
main(n){
for(gets();~scanf("%f%d",&a,&n);
printf("%d\n",n=sqrt(n-a)*2-1e-6));
}


Cの場合はプロトタイプ宣言が必要なのでその分長くなってしまう。doubleでなくてもfloat型で十分のようなので多少短くなが・・・。それから盲点になるのがgets()の部分。GCCではRuntime ErrorになるがCでは『通る場合がある』


通る場合があるというのは、REやWAになる場合もあって確実性は無いということだ。1145祭りでもtime()で通ることがあったので、『ムリかな〜』と思っても一度は試しにやってみよう。