题解 | #大数加法#
大数加法
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.length() <= 0) { return t; } if (t.length() <= 0) { return s; } // 交换字符串,让s为较长的字符串,如果不是则进行交换 if (s.length() < t.length()) { String temp = s; s = t; t = temp; } int carry = 0; // 近位 char[] res = new char[s.length()]; for (int i = s.length() - 1; i >= 0; i--) { // 12341 s // 342 t int temp = s.charAt(i) - '0' + carry; int j = t.length() - (s.length() - i); if (j >= 0) { temp += t.charAt(j) - '0'; } carry = temp / 10; temp = temp % 10; res[i] = (char) (temp + '0'); } String result = String.valueOf(res); if (carry == 1) { result = '1' + result; } return result; } }
采用模拟的方法进行操作