//poj 3299 数学公式 一次AC 但是写的比较多。。
#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
char c;
cin>>c;
while(c != 'E')
{
double a, b;
char c2;
cin>>a;
cin>>c2;
cin>>b;
double temp, dewpoint, humidex;
if(c == 'D')
{
dewpoint = a;
double e1 = 6.11 * pow(2.718281828, 5417.7530 * (( 1.0 / 273.16) - ( 1.0 / (dewpoint + 273.16))));
double h = (0.5555) * ( e1 - 10.0 );
if(c2 == 'T')
{
temp = b;
humidex = temp + h;
}
else if (c2 == 'H')
{
humidex = b;
temp = humidex - h;
}
}
else if(c == 'T')
{
temp = a;
if(c2 == 'D')
{
dewpoint = b;
double e = 6.11 * pow(2.718281828, 5417.7530 * (( 1.0 / 273.16) - ( 1.0 / (dewpoint + 273.16))));
double h = (0.5555) * ( e - 10.0 );
humidex = temp + h;
}
else if (c2 == 'H')
{
humidex = b;
double h = humidex - temp;
double e = h / 0.5555 + 10.0;
dewpoint = log(e / 6.11);
dewpoint = ( 1.0 / 273.16 ) - dewpoint / 5417.7530;
dewpoint = (1.0 / dewpoint - 273.16);
}
}
else if(c == 'H')
{
humidex = a;
if(c2 == 'D')
{
dewpoint = b;
double e = 6.11 * pow(2.718281828, 5417.7530 * (( 1.0 / 273.16) - ( 1.0 / (dewpoint + 273.16))));
double h = (0.5555) * ( e - 10.0 );
temp = humidex - h;
}
else if (c2 == 'T')
{
temp = b;
double h = humidex - temp;
double e = h / 0.5555 + 10.0;
dewpoint = log(e / 6.11);
dewpoint = ( 1.0 / 273.16 ) - dewpoint / 5417.7530;
dewpoint = (1.0 / dewpoint - 273.16);
}
}
cout<<"T "<<fixed<<setprecision(1)<<temp<<" D "<<fixed<<setprecision(1)<<dewpoint<<" H "<<fixed<<setprecision(1)<<humidex<<endl;
cin>>c;
}
return 0;
}
poj 3299
最新推荐文章于 2022-04-08 02:24:42 发布