本地测评是对的,然而在你谷上错了。
#include <bits/stdc++.h>
using namespace std;
struct node{
int a[10010],len;
void clear() {len = 1,memset(a, 0, sizeof a);};
void calc(){
for(int i=1;i<=len;i ++){
if(a[i]>=10)a[i+1] +=a[i]/10,a[i]%=10,len = max(len,i+1);
}
}
void read(){
clear();
char c = getchar();
len = 0;
while(c >= '0' && c <= '9'){a[++len]=c-'0';c = getchar();}
for(int i=1;i<len-i+1;i ++)swap(a[i],a[len-i+1]);
}
friend node operator +(const node &a, const node &b){
node s;s.clear();s.len = max(a.len, b.len);
for(int i=1;i <= s.len;i ++){
s.a[i] = a.a[i] + b.a[i];
}
s.calc();
return s;
}
};
int main(){
node a, b;
a.read();b.read();
node c = a+b;
for(int i=c.len;i >= 1;i --){
cout << c.a[i];
}
}
求助!