九度OJ题目1137:浮点数加法 (JAVA)使用BigDecimal四个案例都通过了,但是超时了。
- 题目描述:
-
求2个浮点数相加的和
题目中输入输出中出现浮点数都有如下的形式:
P1P2...Pi.Q1Q2...Qj
对于整数部分,P1P2...Pi是一个非负整数
对于小数部分,Qj不等于0
- 输入:
-
对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符
- 输出:
-
每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数
- 样例输入:
-
2 0.111111111111111111111111111111 0.111111111111111111111111111111 10000000.655555555555555555555555555555 1.444444444444444444444444444445
- 样例输出:
-
0.222222222222222222222222222222 10000002.1
package a; import java.math.BigDecimal; import java.util.*; public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int m=cin.nextInt(); for(int i=0;i<m;i++){ BigDecimal b1=cin.nextBigDecimal(); BigDecimal b2=cin.nextBigDecimal(); BigDecimal c=b1.add(b2).stripTrailingZeros(); String str = c.toPlainString(); if (str.indexOf('.') == -1) str += ".0"; System.out.println(str); } } cin.close(); } }