题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475?tpId=295&sfm=html&channel=nowcoder
string solve(string s, string t) { // int n1=s.size(); int n2=t.size(); //默认s长度长。 if(n1<n2) { s.swap(t); swap(n1,n2); } if(n1==0) return t; if(n2==0) return s; int indexs=n1-1; int indext=n2-1; int flag=0; while(indext>=0) { int val=s[indexs]-'0'+t[indext]-'0'+flag; flag=val/10; s[indexs]=val%10+'0'; // cout<<val<<endl; indext--; indexs--; } while(flag) { int val; if(indexs>=0) { val=flag+s[indexs]-'0'; s[indexs]=val%10+'0'; flag=val/10; indexs--; }else { s.insert(s.begin(),flag%10+'0'); flag/=10; } } return s; }
在原来的字符串上面加。不浪费空间。