求助A+B问题
查看原帖
求助A+B问题
199475
Niao_niao楼主2024/4/3 11:47

求助,80分,测试时输出有误

错误测试样例:

12310000000000000000
10000
#include<bits/stdc++.h>
using namespace std;
int main() {
	string a,b,sum;
	cin>>a>>b;
	int la=a.size(),lb=b.size();
	for(int i=0; i<la/2; i++)swap(a[i],a[la-i-1]);
	for(int i=0; i<lb/2; i++)swap(b[i],b[lb-i-1]);
	int k=0;
	for(int i=0; i<min(la,lb); i++) {
		int c=(a[i]-'0')+(b[i]-'0')+k;
		if(k==1)k=0;
		if(c>=10) {
			k=1;
			c-=10;
		}
		sum[i]=c+'0';
	}
	for(int i=min(la,lb); i<max(la,lb); i++) {
		if(k==1) {
			k=0;
			sum[i]=max(a[i],b[i])+1;
			if(sum[i]>'9') {
				sum[i]-=10;
				k=1;
			}
		} else sum[i]=max(a[i],b[i]);
	}
	if(k==1)cout<<1;
	for(int i=max(la,lb)-1; i>=0; i--)cout<<sum[i];
	return 0;
}
2024/4/3 11:47
加载中...