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;
}

本文介绍了一种处理两个大整数相减的算法实现,该算法能够处理超过标准整型变量长度的大整数运算问题,并通过补零、逐位相减及进位处理等步骤完成计算。
645

被折叠的 条评论
为什么被折叠?



