社区讨论

10分求调

P2142高精度减法参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m5o0c7q1
此快照首次捕获于
2025/01/08 22:41
去年
此快照最后确认于
2025/11/04 11:51
4 个月前
查看原帖
哪错了???
CPP
#include <iostream>
#include <cstring>
using namespace std;
int main(){
	string s1, s2;
	getline(cin, s1);
	getline(cin, s2);
	int a1[10087]= {0};
	int a2[10087]= {0};
	int a3[10087]= {0};
	char flag = '+';
	if (s1.size() < s2.size() || s1.size() == s2.size() && s1 < s2){
		swap(s1, s2);
		flag = '-';
	}
	for (int i = 0; i < s1.size(); i++){
		a1[i] = s1[s1.size() - i - 1] - '0';
	}
	for (int i = 0; i < s2.size(); i++){
		a2[i] = s2[s2.size() - i - 1] - '0';
	}
	for (int i = 0; i < s1.size(); i++){
		if (a1[i] < a2[i]){
			a1[i] = a1[i] + 10;
			a1[i + 1] = a1[i + 1] - 1;
		}
		a3[i] = a1[i] - a2[i];
	}
	if (flag == '-'){
		cout << flag;
	}
	int index = 0;
	for (int i = s1.size() - 1; i >=0; i--){
		if (a3[i] != 0){
			index = i;
			break;
		} 
	}
	for (int i = index; i >= 0; i--){
		cout << a3[i];
	}
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...