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

POJ3299

2014年10月16日 ⁄ 综合 ⁄ 共 1756字 ⁄ 字号 评论关闭

题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=3299

思路:给你T、D、H中的任意2个,求第三个,简单的模拟

 

  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. public class Main {
  4.     public static void main(String[] args) throws Exception {
  5.         BufferedReader read = new BufferedReader(new InputStreamReader(
  6.                 System.in));
  7.         String str = null;
  8.         double t = 0;
  9.         double d = 0;
  10.         double h = 0;
  11.         double e = 0;
  12.         String[] s = null;
  13.         boolean[] used = null;
  14.         while (!(str = read.readLine()).startsWith("E")) {
  15.             s = str.split(" ");
  16.             used = new boolean[3];
  17.             for (int i = 0; i < 2; i++) {
  18.                 char c = s[i * 2].charAt(0);
  19.                 if (c == 'T') {
  20.                     t = Double.parseDouble(s[i * 2 + 1]);
  21.                     used[0] = true;
  22.                 } else if (c == 'D') {
  23.                     d = Double.parseDouble(s[i * 2 + 1]);
  24.                     used[1] = true;
  25.                 } else if (c == 'H') {
  26.                     h = Double.parseDouble(s[i * 2 + 1]);
  27.                     used[2] = true;
  28.                 }
  29.             }
  30.             if (used[0] && used[1]) {
  31.                 e = 6.11 * Math
  32.                         .exp(5417.7530 * ((1 / 273.16) - (1 / (d + 273.16))));
  33.                 h = t + 0.5555 * (e - 10.0);
  34.             } else if (used[0] && used[2]) {
  35.                 e = (h - t) / 0.5555 + 10.0;
  36.                 d = 1 / (1 / 273.16 - Math.log(e / 6.11) / 5417.7530) - 273.16;
  37.             } else if (used[1] && used[2]) {
  38.                 e = 6.11 * Math
  39.                         .exp(5417.7530 * ((1 / 273.16) - (1 / (d + 273.16))));
  40.                 t = h - 0.5555 * (e - 10.0);
  41.             }
  42.             System.out.printf("T %.1f D %.1f H %.1f/n", t, d, h);
  43.         }
  44.     }
  45. }
【上篇】
【下篇】

抱歉!评论已关闭.