题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
//使用StringBuilder进行反转
//使用"两数之和"的思路相加
public class Solution {
public String solve (String s, String t) {
//让s最长,t最短
if(s.length()<t.length()){
String temp=s;
s=t;t=temp;
}
//反转字符串
StringBuilder ss=new StringBuilder(s).reverse();
StringBuilder tt=new StringBuilder(t).reverse();
StringBuilder res=new StringBuilder();
int i=0;
int temp=0; //进位
//tt字符串长度内的开始
while(i<tt.length()){
int stemp=ss.charAt(i)-'0';
int ttemp=tt.charAt(i)-'0';
res.append((stemp+ttemp+temp)%10);
temp=(stemp+ttemp+temp)/10;
i++;
}
//tt字符串长度以后的开始
while(i<ss.length()){
int stemp=ss.charAt(i)-'0';
res.append((stemp+temp)%10);
temp=(stemp+temp)/10;
i++;
}
//还有进位的情况
if(temp!=0){
res.append(temp);
}
return res.reverse().toString();
}
}
查看3道真题和解析