坑点:这个必须通过0补齐两个字符串
#include <iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
string stra,strb;
int c[110];
int a,b,m,k;
cin>>stra>>strb;
reverse(stra.begin(),stra.end());
reverse(strb.begin(),strb.end());
a=stra.length();
b=strb.length();
m=a;
// cout<<m<<endl;
if(b<a)
{
for(int i=b;i<a;i++)
{
strb[i]='0';
}
}
if(stra.length()>strb.length()) strb.append(stra.length()-strb.length(),'0');
else stra.append(strb.length()-stra.length(),'0');
for(int i=0; i<m; i++)
{
if((i+1)%2==1)
{
c[i]=stra[i]+strb[i]-96;
// cout<<stra[i]<<" "<<strb[i]<<endl;
c[i]=c[i]%13;
if(c[i]==10)
c[i]='J';
if(c[i]==11)
c[i]='Q';
if(c[i]==12)
c[i]='K';
}
else
{
k=strb[i]-stra[i];
if(k<0)
k=k+10;
c[i]=k;
// cout<<c[i]<<endl;
}
}
if(b>=a)
{
for(int i=m; i<b; i++)
{
c[i]=strb[i]-48;
}
a=b;
}
for(int i=a-1; i>=0; i--)
{
if(c[i]==81)
cout<<"Q";
if(c[i]==74)
cout<<"J";
if(c[i]==75)
cout<<"K";
if(c[i]<10)
cout<<c[i];
}
return 0;
}