两个大数之和
借助StringBuilder逐位处理
两个大数相加可以看做两个字符串从尾部开始逐位转int后求和,利用StringBuilder.insert(0, add)加上StringBuilder.toString()或者StringBuilder.append(add)加上StringBuilder.reverse().toString()。
public class Solution {
public String solve (String s, String t){
int i = s.length() - 1, j = t.length() - 1;
int temp = 0;
StringBuilder out = new Stringbuilder();
while (i >= 0 || j >= 0 || temp != 0) {
temp += i >= 0 ? s.charAt(i--) - '0' : 0;
temp += j >= 0 ? t.charAt(j--) - '0' : 0;
out.append(temp % 10);
temp = temp / 10;
}
return out.reverse().toString();
}
} 使用BigInteger,暴力解决
当然还有一种暴力的方法BigInteger,不建议在笔试上使用
public class Solution {
public String solveByJava(String s, String t){
BigInteger num1 = new BigInteger(s);
BigInteger num2 = new BigInteger(t);
return num1.add(num2).toString();
}
} 
京公网安备 11010502036488号