不知道为啥部分正确?先记录一下
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#include<cctype>//里面有isdigit():数字字符返回true
using namespace std;
int main(){
string s1,s2;
cin>>s1>>s2;
int n1=s1.length();
int n2=s2.length();
int flag=1;
char change[3]={'J','Q','K'};
char result[200];
int pos=0;
int j=n2-1;
int i;
for(i=n1-1;i>=0&&j>=0;i--){
if(flag==1){//奇数
//cout<<s1[i]<<endl;
int c=((s1[i]-'0')+(s2[j]-'0'))%13;
if(c>=10){
result[pos++]=change[c%10];
}else{
result[pos++]=c+'0';
}
}else{//偶数
int c=s2[j]-s1[i];
while(c<0){
c+=10;
}
result[pos++]=c+'0';
// printf("%c",result[pos-1]);
//printf("%d",c);
}
// printf("%c",result[pos-1]);
flag*=-1;
j--;
}
if(s2.length()>s1.length()){
for(j=j;j>=0;j--)
result[pos++]=s2[j];
}else{
for(i=i;i>=0;i--){
int c=-1*(s1[i]-'0');
c+=10;
result[pos++]=c+'0';
}
}
for(int k=pos-1;k>=0;k--){
printf("%c",result[k]);
}
return 0;
}