WA
1000000001
1000000001
WA输出
200000002
因为
10000000|01
+10000000|01
------------
20000000|2
=200000002
不会调,求调
#include<iostream>
#include<string>
#include<math.h>
#define N 1000
#define M 8
using namespace std;
string add(string a,string b){
int c[N],d[N],lena=a.length(),lenb=b.length(),len=1,ans[N];
string sum="";
for(int i=0;i<N;i++)ans[i]=c[i]=d[i]=0;
for(int i=0;i<max(lena,lenb);i++){
if(i<lena)c[len]=c[len]*10+(a[i]-'0');
if(i<lenb)d[len]=d[len]*10+(b[i]-'0');
if((i+1)%M==0)len++;
}
if(max(lena,lenb)%9!=0)len++;
for(int i=len-1;i>-1;i--)ans[i]=c[i]+d[i];
for(int i=len-1;i>-1;i--)ans[i-1]+=ans[i]/((int)pow(10,M)),ans[i]=ans[i]%((int)pow(10,M));
for(int i=len-2;i>0;i--){
string c=to_string(ans[i]);
while(c.length()<M)c="0"+c;
sum+=c;
}
if(ans[0]!=0)sum=to_string(ans[0])+sum;
sum+=to_string(ans[len-1]);
return sum;
}
int main(){
string a,b;
cin>>a>>b;
cout<<add(a,b);
return 0;
}