大数加法
![](https://img2022.cnblogs.com/blog/608798/202211/608798-20221111095108402-1422678599.png)
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
// 两个字符串逆序,新建结果数组,
// 先计算最后一位数字,逢十进1,再计算倒数第二个,依次计算,直到第一个数字
String s_reverse = new StringBuffer(s).reverse().toString();
String t_reverse = new StringBuffer(t).reverse().toString();
int max_len = s_reverse.length()>t_reverse.length()?s_reverse.length():t_reverse.length();
int[] arr = new int[100001];
for(int i=0; i<max_len; i++){
int a = 0;
int b = 0;
if(i<s_reverse.length()){
a = Integer.parseInt(String.valueOf(s_reverse.charAt(i)));
}
if(i<t_reverse.length()){
b =Integer.parseInt(String.valueOf(t_reverse.charAt(i)));
}
int c = a + b + arr[i];
arr[i] = c%10;
arr[i+1] = c/10;
System.out.println(arr[i]);
}
StringBuffer sb = new StringBuffer();
System.out.println(arr[max_len]);
if(arr[max_len]!=0 ){
sb.append(arr[max_len]);
}
for(int k=max_len-1; k>=0; k--){
sb.append(arr[k]);
}
return sb.toString();
}
}