求条高精度减法
  • 板块灌水区
  • 楼主__Segment__
  • 当前回复11
  • 已保存回复11
  • 发布时间2024/10/3 11:02
  • 上次更新2024/10/3 11:21:31
查看原帖
求条高精度减法
950272
__Segment__楼主2024/10/3 11:02

rt.在输出的时候会多输出几个0

#include <bits/stdc++.h>
using namespace std;
const int N = 10000 + 5;
void Sub(string a, string b) {
	int lena = a.size(), lenb = b.size();
	int lenc = max(lena, lenb);
	int da[N], db[N], dc[N + 5];
	for (int i = 0; i < lena; ++i)
		da[i] = a[lena - 1 - i] - '0';
	for (int i = 0; i < lenb; ++i)
		db[i] = b[lenb - 1 - i] - '0';
	for (int i = 0; i < lenc; ++i) {
		if (da[i] < db[i]) {
			da[i + 1]--;
			da[i] += 10;
		}
		dc[i] = da[i] - db[i];
	}
	while (dc[lenc - 1] == 0 && lenc > 1)
		lenc--;
	for (int i = lenc; i >= 0; --i)
		cout << dc[i];
}
int main() {
	string A, B;
	cin >> A >> B;
	Sub(A, B);
}
2024/10/3 11:02
加载中...