现在的位置: 首页 > 综合 > 正文

poj 3299

2016年09月26日 ⁄ 综合 ⁄ 共 1221字 ⁄ 字号 评论关闭
//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;
}

【上篇】
【下篇】

抱歉!评论已关闭.