#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
string ss[3];
int main()
{
string a,b;
cin >> a >> b;
ss[1] = a;
ss[2] = b;
for (int i = 1;i <= 2;i++)
{
int n = ss[i].size();
string s = ss[i];
for (int j = 0;j <= n - 1;j++)
{
ss[i][j] = s[n - j - 1];
}
}
a = ss[1];
b = ss[2];
int n = a.size();
int m = b.size();
while (n != m)
{
if (min(n,m) == n)
{
a += "0";
n = a.size();
}
else
{
b += "0";
m = b.size();
}
}
string sum(n + 1,'0');
int c = 0,d = 0;
for (int i = 0;i < n;i++)
{
d = (a[i] - '0') + (b[i] - '0');
c = d / 10;//进位
d %= 10;
sum[i + 1] = char(c + '0');
if (sum[i] == '0')
{
sum[i] = char(d + '0');
}
else
{
sum[i] = char(d + '0') + 1;
}
if (!('0' <= sum[i] && sum[i] <= '9'))
{
sum[i] -= 10;
if (i + 1 == n)
{
sum += "1";
}
else
{
sum[i + 1] = 1;
}
}
//cout << sum << endl;
}
int len = sum.size();
string s = sum;
for (int j = 0;j <= len - 1;j++)
{
sum[j] = s[len - j - 1];
}
if (sum[0] == '0')
{
sum.erase(0,1);
}
cout << sum << endl;
return 0;
}
自测数据:
输入:99 9
代码输出:1008
真答案:108