题目链接:http://poj.org/problem?id=3299

 

        挺扯蛋的一题,本来想刷点水题,结果让这题的题目给虐了...抽空得好好补补英语了。主要是公式的推导

 

代码:

 

#include<iostream>
#include
<cstdio>
#include
<math.h>
using namespace std;

float e = 2.718281828 ;

float fun1(float h, float d){
    
return h-(0.5555*((6.11*pow(e,5417.7530*(1/273.16-1/(d+273.16))))-10.0)) ;
}

float fun2(float t,float d){
    
return t+(0.5555*((6.11*pow(e,5417.7530*(1/273.16-1/(d+273.16))))-10.0)) ;
}

float fun3(float t,float h){
    
return 1/(1/273.16-log(((h-t)/0.5555+10.0)/6.11)/5417.7530)-273.16 ;
}

int main(){
    
char L[100] ;
    
char a1, a2 ;
    
float t1, t2 ;
    
while(true){
        cin 
>> a1 ;
        
if(a1=='E')
            
break ;
        cin 
>> t1 >> a2 >> t2 ;
        
if(a1=='D'&&a2=='H')
            printf(
"T %.1f D %.1f H %.1f\n",fun1(t2,t1),t1,t2) ;
        
else if(a1=='H'&&a2=='D')
           printf(
"T %.1f D %.1f H %.1f\n",fun1(t1,t2),t2,t1) ;
        
else if(a1=='T'&&a2=='D')
            printf(
"T %.1f D %.1f H %.1f\n",t1,t2,fun2(t1,t2)) ;
        
else if(a1=='D'&&a2=='T')
            printf(
"T %.1f D %.1f H %.1f\n",t2,t1,fun2(t2,t1)) ;
        
else if(a1=='T'&&a2=='H')
            printf(
"T %.1f D %.1f H %.1f\n",t1,fun3(t1,t2),t2);
        
else if(a1=='H'&&a2=='T')
            printf(
"T %.1f D %.1f H %.1f\n",t2,fun3(t2,t1),t1) ;

    }
}

 

posted on 2011-09-02 20:25  追逐.  阅读(211)  评论(0编辑  收藏  举报