Beavergnaw(1)
- おしえて!79B
式が決まったところで、早速コードを書いてみる。
main(D,V){ for(;scanf("%d%d",&D,&V),D;) printf("%.3f\n",cbrt(D*D*D-6/3.141592*V)); }
ここから精度を考えて縮めてゆくわけだが、どうやら私のコードだけ同じ79バイトでも他の人たちと違うようだ。私のコードは、6/πの逆数π/6のsinが1/2になることを利用して、
main(D,V){ for(;scanf("%d%d",&D,&V),D;) printf("%.3f\n",cbrt(D*D*D-V/asin(.5))); }
精度は十分。しかしasin()を使うとメモリ消費が大きくなってしまう。asinを使わずに、定数で切り抜けられるんだろうか・・・。