题解 | #大数加法#
大数加法
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);
}
}
查看10道真题和解析

