华为机试测试- 大数相加
2015-09-04 22:25
399 查看
方法一:
直接使用BigDecimal
方法二:字符串解析,注意stringBuilder.append(int x)这里的x最终会变成x字符串,而不是对应的char.
比较好的算法
直接使用BigDecimal
方法二:字符串解析,注意stringBuilder.append(int x)这里的x最终会变成x字符串,而不是对应的char.
比较好的算法
import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String t1=scanner.next(); String t2=scanner.next(); System.out.println(getStr(t1, t2)); scanner.close(); } public static String getStr(String a,String b) { int l=a.length(); int s=b.length(); String longString=l>s?a:b; String shortString=l<=s?a:b; l=longString.length(); s=shortString.length(); longString=new StringBuilder(longString).reverse().toString(); shortString=new StringBuilder(shortString).reverse().toString(); StringBuilder stringBuilder=new StringBuilder(); boolean carry=false; for(int i=0;i<s;i++) { char cl=longString.charAt(i); char cs=shortString.charAt(i); int il=cl-'0'; int is=cs-'0'; int nx=il+is+(carry?1:0); if(nx>9) { carry=true; stringBuilder.append((char)('0'+nx-10)); } else { carry=false; stringBuilder.append((char)('0'+nx)); } } if(s==l && carry) { stringBuilder.append('1'); return stringBuilder.toString(); } String str=longString.substring(s,l); for(int i=0;i<str.length();i++) { char c=str.charAt(i); int nx=c-'0'+(carry?1:0); if(nx>9) { carry=true; stringBuilder.append((char)('0'+nx-10)); } else { carry=false; stringBuilder.append((char)('0'+nx)); } } if(carry) stringBuilder.append('1'); return stringBuilder.reverse().toString(); } }
相关文章推荐
- 获取二叉树深度叶子数
- Linux分享之iptables:防火墙以及网络协议基本原理
- Kaggle系列——Titanic 80%+精确度纪录
- netstat 的10个基本用法
- hdu 4355 Party All the Time 三分
- Android内存管理机制详解
- easyui中Tab的tools按钮刷新当前tab
- haproxy+keepalived实现高可用集群
- 员工管理系统
- YDKJ 读书笔记 01 Function vs. Block Scope
- HDU 4028 The time of a day(DP)
- hdu 1542(离散化+扫描线)
- LA-3027-Corporative Network-更新深度的并查集
- iOS安全系列之一:HTTPS
- 完美监视你的应用程序--Xamarin洞察
- [leetcode 21] Merge Two Sorted Lists
- swift 学习<六> 闭包练习
- poj 3669 Meteor Shower(bfs)
- 人眼中亮斑的检测、定位和去除
- [LeetCode] H-Index II