解法细节看代码哈,有问题私我哈。
/**
* @author xienl
* @description 大数加法
* @date 2022/6/10
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
String s = "1", t = "99";
System.out.println(solution.solve(s, t));
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
if ((s == null && t == null) || (s.isEmpty() && t.isEmpty())){
return "";
}
int len = Math.max(s.length() , t.length());
char[] ans = new char[len + 1];
// 临时变量,存储进位数
int temp = 0;
// 存储两位相加的结果
int value;
int index = 0;
while (index < len || temp != 0){
value = (s.length() - index > 0 ? s.charAt(s.length() - 1 - index) - '0' : 0 ) +
(t.length() - index > 0 ? t.charAt(t.length() - 1 - index) - '0' : 0 ) + temp;
ans[len - index] = (char) (value % 10 + '0') ;
temp = value / 10;
index++;
}
String res = String.valueOf(ans);
return ans[0] == 0 ? res.substring(1, res.length()) : res;
}
}