1048 数字加密
#include <iostream>
using namespace std;
void reverse(string &a)
{
string c;
for (int i = a.length() - 1; i >= 0; i--)
c.push_back(a[i]);
a = c;
}
int main()
{
string A, B;
cin >> A >> B;
string C;
int lenA = A.length(), lenB = B.length();
int flag;
if (lenA >= lenB)
flag = 1;
else
flag = 2;
reverse(A);
reverse(B);
if (flag == 1)
for (int i = lenB; i <= lenA; i++)
B.push_back('0');
else
for (int i = lenA; i <= lenB; i++)
A.push_back('0');
for (int i = 0; i<max(lenA,lenB); i++)
{
if ((i + 1) % 2 != 0)
{
int temp = (B[i] - '0' + A[i] - '0') % 13;
if (temp == 10)
C.push_back('J');
else if (temp == 11)
C.push_back('Q');
else if (temp == 12)
C.push_back('K');
else
C.push_back(temp + '0');
}
else
{
int temp = B[i] - '0' - (A[i] - '0');
if (temp < 0)
temp += 10;
C.push_back(temp + '0');
}
}
for (int i = C.size() - 1; i >= 0; i--)
cout << C[i];
}