思路:
从后便利字符串数组,要加入一个奇偶数位的计算器,判断是奇数位还是偶数位;需要注意的是加密的数字长度与被加密的数字长度可能会不一致,如果被加密数长长的部分直接不变就可以,如果加密数长则将被加密数该位置的值视为0,即可。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char A[101],B[101],N[13]={'0','1','2','3','4','5','6','7','8','9','J','Q','K'},S[101];
int a=1,b,ca,cb;
scanf("%s %s",A,B);
ca=strlen(A)-1;
cb=strlen(B)-1;
while(ca>=0&&cb>=0){
if(a%2==0){
b=B[cb]-A[ca]+10;
b=b%10;
S[a-1]=b+'0';
}
else{
b=A[ca]+B[cb]-2*'0';
b=b%13;
S[a-1]=N[b];
}
a++;
ca--;
cb--;
}
while(cb>=0){
S[a-1]=B[cb];
a++;
cb--;
}
while(ca>=0){
if(a%2==0){
b=0-A[ca]+'0'+10;
b=b%10;
S[a-1]=b+'0';
}
else{
S[a-1]=A[ca];
}
ca--;
a++;
}
S[a-1]='\0';
for(a=a-2;a>=0;a--)
printf("%c",S[a]);
return 0;
}