实现大数加法函数

写一个简短的大数加法的函数(说实话模拟还是花了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;
}

猜你喜欢

转载自blog.csdn.net/yangzijiangac/article/details/106530257