求助
查看原帖
求助
1054464
tellmethetruth楼主2024/8/15 22:44
#include<bits/stdc++.h>
using namespace std;
int main() {
	//高精减
	bool d = 1;
	string s1, s2;
	int a1[10100], a2[10100], a3[10100];
	getline(cin, s1);
	getline(cin, s2);
	memset(a1, 0, sizeof(a1));
	memset(a2, 0, sizeof(a2));
	memset(a3, 0, sizeof(a3));
	if (s1.size() < s2.size()|| s1.size() == s2.size()&&s1<s2) {
		swap(s1, s2);
		d = 0;
	}
	for (int i = 0; i <s1.size(); i++) {
		a1[i] = s1[s1.size() - 1 - i] - '0';
	}
	for (int i = 0; i < s2.size(); i++) {
		a2[i] = s2[s2.size() - 1 - i] - '0';
	}
	int len = s1.size() - 1;
	for (int i = 0; i <= len; i++) {
		if (a1[i] < a2[i]) {
			a1[i] = a1[i] + 10;
			a1[i + 1] = a1[i + 1] -1;
		}
		a3[i] = a1[i] - a2[i];
	}
	for (int i = len; i >= 0; i--) {
		if (a3[i] != 0) {
			len = i;
			break;
		}
		if (i == 0) {
			cout << 0;
			return 0;
		}
	}
	if (d == 0) {
		cout << '-';
	}
	for (int i = len; i >= 0; i--) {
		cout << a3[i];
	}
	return 0;
}
2024/8/15 22:44
加载中...