题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
import java.util.*; //JAVA 大数相加。不能简单的只把string类型转化成int,会超过int的范围. //应该模拟加法的运算规则, //两数相加 >10进1. 前面的数在做加运算会加上这个进的1,所以用一个变量去接住。 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { int i = s.length()-1; int j = t.length()-1; int carry =0; StringBuilder stringBuilder = new StringBuilder(); while(i>=0 || j>=0 || carry !=0){ int x = i<0? 0:s.charAt(i--) - '0'; int y = j<0? 0:t.charAt(j--) - '0'; int sum = x + y + carry; stringBuilder.append(sum % 10); //添加到字符串尾部 carry = sum / 10; //sum大于10进1 小于10为0 } return stringBuilder.reverse().toString(); //对字符串反转 } }