#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
using namespace std;
char value[]={'0','1','2','3','4','5','6','7','8','9','J','Q','K'};
int main()
{
char s1[105],s2[105],str[105];
scanf("%s %s",s1,s2);
int index=1,len1=strlen(s1),len2=strlen(s2);
int i=len1-1,j=len2-1,num,k=0;
while(i>=0 && j>=0){
if(index%2){
str[k++]=value[((s1[i]-'0')+(s2[j]-'0'))%13];
}else{
str[k]=s2[j]-s1[i]+'0';
if(str[k]<'0')
str[k]+=10;
k++;
}
i--;
j--;
index++;
}
while(j>=0) str[k++]=s2[j--];
while(i>=0){
if(index%2)
str[k++]=s1[i];
else{
if(s1[i]=='0') str[k++]='0';
else
str[k++]=10-(s1[i]-'0')+'0';
}
i--;
index++;
}
while(k>=1){
printf("%c",str[--k]);
}
return 0;
}
这里注意一下,长度取得是A和B的最大长度,小的那个长度高位要补0,其实就是当B比A短的时候容易被忽略。