写一个简短的大数加法的函数(说实话模拟还是花了10分钟的时间,不同的进制只需要修改进制数即可)

string add(string a, string b)
{
int lena = a.size() - 1, lenb = b.size() - 1, d = 0, x;
string c;
while (lena >= 0 || lenb >= 0)
{
if (lenb < 0 && lena >= 0)
x = a[lena] - '0';
else if (lena < 0 && lenb >= 0)
x = b[lenb] - '0';
else
x = a[lena] + b[lenb] - '0' * 2;
c += ((d + x) % 10 + '0'), d = (x + d) / 10;
lena--, lenb--;
}
if (d > 0)c += (d + '0');
reverse(c.begin(), c.end());
return c;
}