加法
// luogu-judger-enable-o2
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a1[1000],b1[1000];
int a[1000]= {0},b[1000]= {0},c[1000]= {0},la,lb,lc,i,x;
cin>>a1>>b1;
la=strlen(a1);
lb=strlen(b1);
for(i=0; i<=la-1; i++) a[la-i]=a1[i]-48;
for(i=0; i<=lb-1; i++) b[lb-i]=b1[i]-48;
lc=1,x=0;
while(lc<=la||lc<=lb) c[lc]=a[lc]+b[lc]+x,x=c[lc]/10,c[lc]%=10,lc++;
c[lc]=x;
if(c[lc]==0) lc--;
for(i=lc; i>=1; i--) cout<<c[i];
cout<<endl;
return 0;
}
//A+B problem
乘法
// luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std;
char a1[50001],b1[50001];
int a[50001],b[50001],i,x,len,j,c[50001];
int main ()
{
cin >>a1 >>b1;
a[0]=strlen(a1);b[0]=strlen(b1);
for (i=1;i<=a[0];++i)a[i]=a1[a[0]-i]-'0';
for (i=1;i<=b[0];++i)b[i]=b1[b[0]-i]-'0';
for (i=1;i<=a[0];++i)for (j=1;j<=b[0];++j)c[i+j-1]+=a[i]*b[j];
len=a[0]+b[0];
for (i=1;i<len;++i)if (c[i]>9){c[i+1]+=c[i]/10;c[i]%=10;}
while (c[len]==0&&len>1)len--;
for (i=len;i>=1;--i) cout<<c[i];
return 0;
}