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); } } }
以上是关于poj3299的主要内容,如果未能解决你的问题,请参考以下文章