PKU 3299 Humidex
http://poj.org/problem?id=3299
2つの値が与えられるので、残りの一つの値を出す。
式変形して書く。
入力の形式について誤解していて1WA。
これもdiscussを見てしまった。
main(){ char c; while(true){ char c; int s=7; double humidex,temperature,dewpoint; rep(i,2){ cin>>c; switch(c){ case 'E':return 0;break; case 'T':s-=1,cin>>temperature;break; case 'D':s-=2,cin>>dewpoint;break; case 'H':s-=4,cin>>humidex;break; } } double e=6.11*exp(5417.7530*(1/273.16-1/(dewpoint+273.16))); double h=0.5555*(e-10); double t; switch(s){ case 1: temperature=humidex-h; break; case 2: h=humidex-temperature; e=h/0.5555+10; t=log(e/6.11)/5417.7530; dewpoint=273.16/(1-273.16*t)-273.16; break; case 4: humidex=temperature+h; break; } printf("T %.1f D %.1f H %.1f\n",temperature,dewpoint,humidex); } }