1048 数字加密

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
#define ll long long
char a[110],b[110];
int cal[110],cal2[110];
char cal3[110];
int main(){
	cin>>a>>b;
	int p1=0,p2=0;
	for(int i=strlen(a)-1;i>=0;i--){
	   cal[p1]=a[i]-'0';
	   p1++;
	}
	for(int i=strlen(b)-1;i>=0;i--){
	   cal2[p2]=b[i]-'0';
	   p2++;
	}
	//运算
	int len = max(p1,p2);
	int ji = 1;
	for(int i=0;i<len;i++){
		int x = cal2[i];
		int y = cal[i];
		if(ji){//奇数位 
			int res = (x+y)%13;
			if(res<=9){
				cal3[i]=res+'0';
			}else{
				if(res==10) cal3[i]='J';
				else if(res==11) cal3[i]='Q';
				else if(res==12) cal3[i]='K';
			}
			ji=0;
		}else{//偶数位 
			int res = x - y;
			if(res < 0) res += 10;
			cal3[i]=res+'0';
			ji=1;
		}
	}
	for(int i=len-1;i>=0;i--){
		cout << cal3[i];
	}
	return 0;
}

posted @ 2024-04-18 11:58  YuKiCheng  阅读(9)  评论(0编辑  收藏  举报