题解 | #大数加法#
大数加法
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) { char[] arr = new char[Math.max(s.length(), t.length()) + 1]; int p = 0; // 进位 int index = arr.length - 1; for (int i = s.length() - 1, j = t.length() - 1; i >= 0 || j >= 0; i--, j--) { int x = 0, y = 0; if (i >= 0) x = Integer.parseInt(String.valueOf(s.charAt(i))); if (j >= 0) y = Integer.parseInt(String.valueOf(t.charAt(j))); int num = x + y + p; p = num > 9 ? 1 : 0; char c = Character.forDigit(num % 10, 10); arr[index--] = c; } if (p == 1) { arr[index] = '1'; return new String(arr); } else return new String(arr,1, arr.length-1); } }