题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { if (s.equals("")) { return t; } if (t.equals("")) { return s; } char[] charS = s.toCharArray(); char[] charT = t.toCharArray(); int sLen = s.length(); int tLen = t.length(); int len = Math.min(sLen, tLen); StringBuilder sb = new StringBuilder(); boolean flag = false; //是否进位 for (int i = 1; i <= len; i++) { int tempS = charS[sLen - i] - '0'; int tempT = charT[tLen - i] - '0'; int temp; if (flag) { temp = tempS + tempT + 1; } else { temp = tempS + tempT; } if (temp >= 10) { flag = true; } else { flag = false; } sb.append(temp % 10); } if (sLen > len) { for (int i = sLen - len - 1; i >= 0; i--) { int temp; if (flag) { temp = (charS[i] - '0') + 1; } else { temp = (charS[i] - '0'); } if (temp >= 10) { flag = true; } else { flag = false; } sb.append(temp % 10); } } if (tLen > len) { for (int i = tLen - len - 1; i >= 0; i--) { int temp; if (flag) { temp = (charT[i] - '0') + 1; } else { temp = (charT[i] - '0'); } if (temp >= 10) { flag = true; } else { flag = false; } sb.append(temp % 10); } } if (flag) { sb.append("1"); } return sb.reverse().toString(); } }#在找工作求抱抱#