您的位置:首页 > 其它

1048. 数字加密(20)PAT乙级

2017-01-17 17:06 351 查看
传送门

#include<cstdio>
#include<string.h>

#define MAX_N 120

char a[MAX_N],b[MAX_N],c[MAX_N];
char p[]={'0','1','2','3','4','5','6','7','8','9','J','Q','K'};
char ans[MAX_N];

void reverse(char s[]){
int l=strlen(s);
for(int i=0;i<l/2;i++){
char temp=s[i];
s[i]=s[l-1-i];
s[l-i-1]=temp;
}
}

int main(){
scanf("%s %s",a,b);
reverse(a);
reverse(b);
int la=strlen(a);
int lb=strlen(b);

int len=la>lb?la:lb;
for(int i=0;i<len;i++){
int na=i<la?a[i]-'0':0;
int nb=i<lb?b[i]-'0':0;
if(i%2==0){
ans[i]=p[(na+nb)%13];
}
else{
int temp=nb-na;
if(temp<0)  temp+=10;
ans[i]=temp+'0';
}
}
reverse(ans);
puts(ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: