#include <stdio.h> #include <string.h> //字符串反转函数 void reverse(char * ch) { int j=strlen(ch)-1; for(int i=0;i<j;++i,--j) { char c=ch[i]; ch[i]=ch[j]; ch[j]=c; } } //设置进位标记 typedef struct symbol { int val; int dec; } Mark; static Mark m; //令进度标记为全局变量 //两个字符相加算法 char process(char c1,char c2) { int a=c1-'0'; int b=c2-'0'; int c=a+b+m.dec; m.val=c%10; m.dec=c/10; return m.val+'0'; } //传入两个字符串(由低位到高位排),逐位按十进制相加, void tranf(char * ch1,char * ch2,char *res) { int len1=strlen(ch1); int len2=strlen(ch2); //len取长的串 int len=len1>len2?len1:len2; int i=0; if(len==len2) { for(i=0;i<len1;++i) res[i]=process(ch1[i],ch2[i]); for(i=len1;i<len;++i) res[i]=process('0',ch2[i]); if(m.dec==1) res[i]='1'; } else //len1最长 { //前len2位,依次输入 for(i=0;i<len2;++i) res[i]=process(ch1[i],ch2[i]); for(i=len2;i<len;++i) res[i]=process(ch1[i],'0'); if(m.dec==1) res[i]='1'; } reverse(res); puts(res); } int main() { char ch1[10001]={0},ch2[10001]={0}; // while(scanf("%s\n",ch1)!=NULL)

while(scanf("%s\n",ch1)!=EOF)
{

        //输入的是12345678
        scanf("%s\n",ch2);
        m.dec=0;m.val=0;
        //输入反转87654321
        reverse(ch1);
        reverse(ch2);
       char res[10001]={0};
        tranf(ch1,ch2,res);

// printf("%lld\n",tranf(ch1,ch2,res); } return 0; }