题解 | #大数加法#
大数加法
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) { // write code here //创建容器sb用来存放结果值 StringBuilder sb = new StringBuilder(); //定义变量i,j用来指向s,t数组的最后一位 int i = s.length()-1; int j = t.length()-1; //count用来记录位数的移动 int count = 0; //循环条件内判断i,j是否指向数组的最后一位,如果i,j小于0则数据越界,count记录数组位数 //循环一次count往前进1 for(;i >= 0 || j >= 0 || count != 0; i--,j--){ //将数组中的最后一位分别跳出并赋值给变量num1和num2 int num1 = i>=0?s.charAt(i)-'0':0; int num2 = j>=0?t.charAt(j)-'0':0; //对两数组中的最后一位上的值和count相加取摸 求出最高位 sb.append((num1+num2+count)%10); //将count前进1位 count = (num1+num2+count)/10; } //将容器的值反转并转化成字符串输出 return sb.reverse().toString(); } }