1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 #include<algorithm> 6 #define MAXN 50001 7 const int p=8;//要压的位数 8 const int mod=1e8;//10的p次方 9 using namespace std; 10 int a[MAXN],b[MAXN],c[MAXN],l1,l2,len,cnt1,cnt2; 11 char s1[MAXN],s2[MAXN]; 12 inline int chuli(char s[],int n[]) { 13 char t[MAXN];//记录每p位的数 14 int len=strlen(s+1),cur=0; 15 while(len/p) { 16 strncpy(t,s+len-p+1,p);//从后截取p位 17 n[++cur]=atoi(t);//char转int 18 len-=p; 19 } 20 if(len) { 21 memset(t,0,sizeof t); 22 strncpy(t,s+1,len); 23 n[++cur]=atoi(t); 24 } 25 return cur; 26 } 27 inline void pluss() { 28 len=max(cnt1,cnt2)+1; 29 for(int i=1;i<=len;i++) { 30 c[i]+=a[i]+b[i]; 31 c[i+1]=c[i]/mod; 32 c[i]%=mod; 33 } 34 while(len>0&&!c[len]) len--; 35 } 36 inline void print() { 37 printf("%d",c[len]); 38 for(int i=len-1;i>=1;i--) printf("%0*d",p,c[i]);//不足p位补0 39 printf("\n"); 40 } 41 int main() { 42 scanf("%s%s",s1+1,s2+1); 43 cnt1=chuli(s1,a);cnt2=chuli(s2,b); 44 pluss(); 45 print(); 46 return 0; 47 }