![在这里插入图片描述](https://img-blog.csdnimg.cn/20200331142327515.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExOTIwOTkzMTY1,size_16,color_FFFFFF,t_70)
注意点
- 将A,B两字符串较短者补上0
- 本题字符串进行反转后处理较为方便
#include <bits/stdc++.h>
using namespace std;
char num[15]={'0','1','2','3','4','5','6','7','8','9','J','Q','K'};
int main()
{
string a,b,c;
cin>>a>>b;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int lena=a.length(),lenb=b.length();
if(lena<lenb){
while((lena++)<lenb)
a+='0';
}else{
while((lenb++)<lena)
b+='0';
}
for(int i=1;i<=a.length();i++){
int n1=a[i-1]-'0',n2=b[i-1]-'0';
if(i%2!=0){
c+=num[(n1+n2)%13];
}else{
if(n2-n1>=0)c+=n2-n1+'0';
else c+=n2-n1+10+'0';
}
}
for(int i=c.length()-1;i>=0;i--)cout<<c[i];
return 0;
}