题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
从个位一次相加即可。
注意进位
最终我们用StringBuffer来存储,需要最后再判断一次进位,并将结果翻转。
public String solve (String s, String t) { // write code here int lenS = s.length(), lenT = t.length(); int idxS = lenS - 1; int idxT = lenT - 1; int cint = 0; StringBuffer sb = new StringBuffer(); while(idxS >= 0 || idxT >= 0){ int a = idxS >= 0 ? s.charAt(idxS) - '0' : 0; int b = idxT >= 0 ? t.charAt(idxT) - '0' : 0; int sum = a + b + cint; if(sum > 9){ cint = 1; }else{ cint = 0; } sb.append(sum % 10); idxS--; idxT--; } if(cint == 1) sb.append(1); return sb.reverse().toString(); }