80 错第3个点
查看原帖
80 错第3个点
670998
Neven楼主2022/8/2 17:44

测试数据:11111111111111111111111111、9999999999999999999999999999999990

#include<bits/stdc++.h>
using namespace std;
int yu, sum[505];
char a[505], b[505];
int main(){
	cin >> a >> b;
	int stra = strlen(a);
	int strb = strlen(b);
	if(stra > strb){
		for(int i = stra - 1; i >= stra - strb - 1; i--){
			b[i] = b[i - (stra - strb)];
		}
		for(int i = 0; i <= stra - strb - 1; i++){
			b[i] = '0';
		}
	}
	else if(strb > stra){
		for(int i = strb - 1; i >= strb - stra - 1; i--){
			a[i] = a[i - (strb - stra)];
		}
		for(int i = 0; i <= strb - stra - 1; i++){
			a[i] = '0';
		}
	}
//	for(int i = 0; i < stra + 10; i++) cout << a[i] << " ";
//	cout << endl;
//	for(int i = 0; i < stra + 10; i++) cout << b[i] << " ";
//	cout << endl;
	for(int i = max(stra, strb) - 1; i >= 0; i--){
		sum[i] += a[i] - '0' + b[i] - '0' + yu;
		yu = sum[i] / 10;
		sum[i] %= 10;
//		cout << yu << " ";
	}
	if(yu){
		sum[stra] += yu;
		cout << sum[stra];
	}
	for(int i = 0; i < max(stra, strb); i++){
		cout << sum[i];
	}
	return 0;
}

到底错哪了... [1601](P1601 A+B Problem(高精))

2022/8/2 17:44
加载中...