题目描述
高精度减法。
输入格式
两个整数 a,b(第二个可能比第一个大)。
输出格式
结果(是负数要输出负号)。
输入 #1
2
1
输出 #1
1
代码:
#include <iostream>
using namespace std;
#include<cstdio>
#include<string>
#include<queue>
string x, y;
int a[100005], b[100005], c[10005], la, lb, lc;
int main() {
cin >> x >> y;
la = x.length();
lb = y.length();
if (la < lb || la == lb && x < y)//处理负号的情况
{
swap(x, y);
swap(la, lb);
cout << "-";
}
for (int i = 0;i < la;i++)
{
a[la - i] = x[i] - '0';
}
for (int i = 0;i < lb;i++)
{
b[lb - i] = y[i] - '0';
}
for (int i = 1;i <= la;i++)
{
if (a[i] < b[i])
{
a[i] += 10;
a[i + 1]--;
}
c[i] = a[i] - b[i];
}
while (c[la] == 0 && la > 1)la--;
for (int i = la;i >= 1;i--)
{
cout << c[i];
}
return 0;
}