题解 | #大数加法#
大数加法
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(); } }