【高精度】A-B Problem

Description
求两个大的正整数相减的差。

Input
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。

Output
一行,即所求的差。

Sample Input
9999999999999999999999999999999999999
9999999999999
Sample Output
9999999999999999999999990000000000000

AC Code:

#include <iostream>
#include <string>
  
using namespace std;
  
string a, b;
  
int main(int argc, char** argv)
{
    int i, l;
      
    cin >> a >> b;
      
    if (a == b)
    {
        cout << 0 << endl;
        return 0;
    }
    l = a.size() - b.size();
    for (i = 1; i <= l; i++)
    {
        b = "0" + b;
    }
    for (i = a.size() - 1; i >= 0; i--)
    {
        a[i] = a[i] - b[i] + '0';
        if (a[i] < '0')
        {
            a[i] += 10;
            if (i)
            {
                a[i-1]--;
            }
        }
    }
      
    i = 0;
    while (a[0] == '0')
    {
        a.erase(0, 1);
    }
    cout << a << endl;
      
    return 0;
}

猜你喜欢

转载自blog.csdn.net/drtlstf/article/details/80243950