90pts悬棺求条,很急!
查看原帖
90pts悬棺求条,很急!
1323415
wky_wsy_楼主2025/1/15 19:21

用 vs 写的马蜂有点丑。

#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#define int long long
using namespace std;
inline string sub(string a, string b) {
	string z("");
	if ((a.size() < b.size()) || (a.size() == b.size() && a < b)) {
		swap(a, b);
		z += "-";
	}
	int la = a.size(), lb = b.size(), lm = max(la, lb);
	vector<int> f(lm + 7, 0);
	for (int i = 0;i < la;i++) f[i] = a[la - 1 - i] - '0';
	for (int i = 0;i < lb;i++) {
		if (f[i] - b[lb - 1 - i] + '0' < 0) {
			--f[i + 1];
			f[i] += 10;
		}
		f[i] = f[i] - b[lb - 1 - i] + '0';
	}
	int k = 0;
	for (int i = lm + 5;i >= 0;i--) {
		if (f[i] != 0) {
			k = i;
			break;
		}
	}
	for (int i = k;i >= 0;i--) {
		z += char(f[i] + '0');
	}
	return z;
}
signed main() {
	string a, b;
	cin >> a >> b;
	cout << sub(a, b);
	return 0;
}
2025/1/15 19:21
加载中...