hdu1753大明A+B
2014-04-03 22:55
239 查看
大明A+B
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7385 Accepted Submission(s): 2596
[align=left]Problem Description[/align]
话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
[align=left]Input[/align]
本题目包含多组测试数据,请处理到文件结束。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
[align=left]Output[/align]
请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。
[align=left]Sample Input[/align]
1.1 2.9
1.1111111111 2.3444323343
1 1.1
[align=left]Sample Output[/align]
4
3.4555434454
2.1
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.FileReader; import java.io.PrintWriter; import java.io.OutputStreamWriter; import java.io.StreamTokenizer; import java.util.StringTokenizer; import java.io.IOException; import java.math.BigDecimal; class Main { public static final boolean DEBUG = false; public StringTokenizer tokenizer; public PrintWriter cout; BufferedReader cin; public void init() throws IOException { if (DEBUG) { cin = new BufferedReader(new FileReader("d:\\OJ\\uva_in.txt")); } else { cin = new BufferedReader(new InputStreamReader(System.in)); } tokenizer = new StringTokenizer(""); cout = new PrintWriter(new OutputStreamWriter(System.out)); } public String next() throws IOException { while (!tokenizer.hasMoreTokens()) { String s = cin.readLine(); if (s == null) return null; tokenizer = new StringTokenizer(s); } return tokenizer.nextToken(); } public void solve(String s1, String s2) { BigDecimal bd1 = new BigDecimal(s1); BigDecimal bd2 = new BigDecimal(s2); BigDecimal ans = bd1.add(bd2); StringBuilder sb = new StringBuilder(ans.toPlainString()); if (sb.indexOf(".") != -1) { for (int i = sb.length() - 1; i >= 1; i--) { if (sb.charAt(i) == '0') sb.deleteCharAt(i); else break; } } if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1); if (sb.indexOf(".") != -1 && sb.charAt(0) == '0') sb.deleteCharAt(0); cout.println(sb.toString()); cout.flush(); } public static void main(String[] args) throws IOException { Main solver = new Main(); solver.init(); String s; while ((s = solver.next()) != null) { String s1 = s; String s2 = solver.next(); solver.solve(s1, s2); } } }
相关文章推荐
- OpenStack最新版本Folsom架构解析(2)
- 如何导入导出MySQL数据库
- Spectral Clustering
- fedora18安装ssh
- 关于ubuntu下Android工作空间出现android-support-v7-appcompat
- JQuery Selectors 方法说明
- 黑客文化简史
- 第5周作业-贷款计算器程序
- Windows Server 2012 R2 DHCP安装与配置之03 DHCP负载均衡与双机热备
- test
- unity 3D 场景缩放代码
- Android电源管理分析
- Oracle EBS - What happening when executing adcfgclone.pl in DB Tier as well as Apps Tier?
- HDU 1878 欧拉回路
- OpenStack最新版本Folsom架构解析
- LDA最佳学习资料汇总
- 第四周作业——图的表示
- hash表进阶
- 洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT
- Oracle EBS - What happening when executing adpreclone.pl in DB and Apps Tier?