测试数据: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(高精))