#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
string sub(string a, string b) {
int i, j, k, s, flag = 1;
int tmpa[10000], tmpb[10000], c[10000];
string ans;
if (a.size() < b.size() || (a.size() == b.size() && a.compare(b) < 0)) {
string tmp = a;
a = b;
b = tmp;
flag = 0;
}
while (a.length() > b.length()) b = '0' + b;
int len = a.length();
for (i = 0; i < len; i ++) {
tmpa[i] = a[i] - '0';
tmpb[i] = b[i] - '0';
}
for (i = len - 1; i >= 0; i --) {
if (tmpa[i] >= tmpb[i]) {
c[i] = tmpa[i] - tmpb[i];
} else {
c[i] = 10 + tmpa[i] - tmpb[i];
tmpa[i - 1] --;
}
}
for (i = 0; i < len - 1; i ++) {
if (c[i] != 0) break;
}
for (j = i; j < len; j ++) {
ans += (char)(c[j] + '0');
}
if (!flag) ans = '-' + ans;
return ans;
}
int main()
{
string a, b;
while (cin >> a >> b) {
cout << sub(a, b) << endl;
}
}
大整数减法 模板
最新推荐文章于 2023-03-09 15:24:42 发布