poj3299

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj3299相关的知识,希望对你有一定的参考价值。

 

题目大意:简单题。

     给定公式。已知三个数中的两个数,求第三个数。

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

解题思路:水。

注意点:

  1.在POJ提交Java代码时类名要为Main。

  2.不能像本地运行一样,引用什么什么包。

  3.Math类中的pow(a,b)函数为求a的b次方。a,b,以及返回值都是double类型的。

  4.Math类中的log(a) 返回自然对数(以e为底)的一个double值。其中a为double类型。

  5.Math类中的long round(double a),此方法返回的参数最接近的long.

 

技术分享
import java.util.*;

public class Main {
    public static void main(String[] args){
        
        String temp;
        double tt,dd,hh;
        final double e=2.718281828;
        
        Scanner in=new Scanner(System.in);
        
        while(in.hasNext()){
            tt=dd=hh=9999;
            for(int i=0;i<2;i++){
                temp=in.next();
                if(temp.equals("E")) 
                    System.exit(0);
                else if(temp.equals("T"))
                    tt=in.nextDouble();
                else if(temp.equals("D"))
                    dd=in.nextDouble();
                else if(temp.equals("H"))
                    hh=in.nextDouble();
            }
            
            double temp2;
            if(dd==9999){
                temp2=(hh-tt)/0.5555+10.0;
                dd=1/(1/273.16-Math.log(temp2/6.11)/5417.7530)-273.16;
                dd=(double)Math.round(dd*10)/10;
            }
            else if(tt==9999){
                temp2=6.11*Math.pow(e,5417.7530 * ((1/273.16)-(1/(dd+273.16))));
                tt=hh-0.5555*(temp2-10.0);
                tt=(double)Math.round(tt*10)/10;
            }
            else if(hh==9999){
                temp2=6.11*Math.pow(e,5417.7530 * ((1/273.16)-(1/(dd+273.16))));
                hh=tt+0.5555*(temp2-10.0);
                hh=(double)Math.round(hh*10)/10;
            }
            System.out.println("T " + tt + " D " + dd + " H " + hh);
        }
    }
}
View Code

 

以上是关于poj3299的主要内容,如果未能解决你的问题,请参考以下文章

POJ 3299 Humidex

POJ - 3299 Humidex

POJ刷题指南

POJ刷题指南

POJ题目分类

转 POJ分类