C++
#include<bits/stdc++.h>
#define io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
string aa, bb;
int a[10001], b[10001], c[10001];
int main() {
io
cin >> aa >> bb;
if ((aa < bb && aa.length() == bb.length()) || aa.length() < bb.length()) {
cout << '-';
swap(aa, bb);
}
reverse(aa.begin(), aa.end());
reverse(bb.begin(), bb.end());
for (int i = 1; i <= aa.length(); i++) a[i] = aa[i] - '0';
for (int i = 1; i <= bb.length(); i++) b[i] = bb[i] - '0';
bool j = 0;
int ml = max(aa.length(), bb.length());
for (int i = 1; i <= ml; i++) {
if (a[i] < b[i]) {
a[i + 1] --;
a[i] += 10;
}
c[i] = a[i] - b[i];
}
while (!c[ml]) ml--;
if (ml < 1) cout << "0";
else for (int i = ml; i > 0; i--) cout << c[i];
return 0;
}
在计算十以内的减法大多输出0,计算更大的减法结果更离谱。