计算结果有误
查看原帖
计算结果有误
1241319
YWJ20140130楼主2025/1/23 12:13
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,计算更大的减法结果更离谱。

2025/1/23 12:13
加载中...