string solve(string s, string t) {
string result="";
int flag=0;//进位标志
int i=s.length()-1,j=t.length()-1;
while(i>=0||j>=0||flag)
{
int num=flag;
if(i>=0)
num+=s[i--]-'0';
if(j>=0)
num+=t[j--]-'0';
if(num>9)
{
flag=1;
num-=10;
}
else
flag=0;
result+='0'+num;
}
return reverse(result);;
}
string reverse(string a)
{
/*string tmp="";
for(int i=a.size()-1; i>=0; i--)
tmp+=a[i];
return tmp;*/
int n=a.length();
for(int i=0; i<n/2; i++)
{
a[i]^=a[n-i-1];
a[n-i-1]^=a[i];
a[i]^=a[n-i-1];
}
return a;
}
};模拟普通加法

京公网安备 11010502036488号