题目描述 高精度减法。输入格式两个整数 a,b(第二个可能比第一个大)。输出格式结果(是负数要输出负号)。输入输出样例输入 #1复制21输出 #1复制1说明/提示20% 数据 a,b 在 long long 范围内;100% 数据 0<a,b≤1010086。#include <iostream>#include<vector>#include<algorithm>#include<cmath>#include<iomanip>#include<queue>using namespace std;const int N = 1e6 + 10;int a[N], b[N], c[N];int lena, lenb, lenc;void gj(int a[], int b[], int c[]) {for (int i = 0; i < lena; i++) {c[i] += a[i] - b[i];if (c[i] < 0) {c[i + 1] -= 1;c[i] += 10;}}}int main() {string a1, b1;cin >> a1 >> b1;bool change = false;if (a1.size() < b1.size()) {swap(a1, b1);change = true;}if (!change){if (a1.size() == b1.size() && a1 < b1) {swap(a1, b1);change = true;}}lena = a1.size();lenb = b1.size();for (int i = 0; i < lena; i++) {a[lena - 1 - i] = a1[i] - '0';}for (int i = 0; i < lenb; i++) {b[lenb - 1 - i] = b1[i] - '0';}gj(a,b,c);while (lena > 1 && c[lena - 1] == 0) {lena--;}if (change) {cout << "-";}for (int i = lena - 1; i >= 0; i--) {cout << c[i];}return 0;}