题解 | #大数加法#
大数加法
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;
}
在原来的字符串上面加。不浪费空间。
