#include<bits/stdc++.h>
using namespace std;
struct bigint{
int val[1005],len=1;
int f = 1;
void operator= (bigint a){
len=a.len;
f=a.f;
for (int i = 1; i <= a.len; ++i) {
val[i]=a.val[i];
}
}
void put(){
if (f==-1)putchar('-');
for (int i = len; i > 0; --i) {
putchar(val[i]+'0');
}
}
void read(){
char ch=getchar();
while (!isdigit(ch)&&ch!='-'){
ch=getchar();
}
if (ch=='-'){
f=-1;
ch=getchar();
}
string s;
s.push_back(ch);
len++;
while(isdigit(ch)){
ch=getchar();
s.push_back(ch);
len++;
}
for (int i = s.length()-1; i >= 0; i--){
val[s.length()-i-1]=s[i]-48;
}
len-=2;
}
bigint operator+ (const bigint b){
bigint x;
if (f==b.f){
x=b;
x.len=max(len,x.len)+1;
for (int i = 1; i <= x.len; ++i) {
x.val[i]+=val[i];
x.val[i+1]+=x.val[i]/10;
x.val[i]%=10;
}
while (x.val[x.len]==0){
x.len--;
}
}else{
}
return x;
}
};
int main(){
bigint a,b;
a.read(),b.read();
(a+b).put();
return 0;
}
在a或b<10时答案不正确。提交ac。