您的位置:首页 > 其它

1048. 数字加密(20)

2017-05-13 20:22 295 查看
#include<stdio.h>
#include<string.h>
void swap(char *a, char *b)
{
char temp=*a;
*a = *b;
*b = temp;
}
int main()
{
char A[200]={0},B[200]={'0'},temp=0;
char password[13] = {'0','1','2','3','4','5','6','7','8','9','J','Q','K'};
int i=1,j=0,A_len,B_len,x=0;

for(j=0; j<200; j++)
B[j] = '0';
while((temp = getchar())!=' ')
{
A[i++] = temp;
}
A_len = i-1;

i = 1;
while((temp = getchar())!='\n')
{
B[i++] = temp;
}
B_len = i-1;

for(j=1; j<=(A_len/2); j++)
swap(&A[j],&A[A_len-j+1]);
for(j=1; j<=(B_len/2); j++)
swap(&B[j],&B[B_len-j+1]);

for(j=1; j<=A_len; j++)
{
if(j%2==1)
{
x = (B[j] + A[j] - 2*'0')%13;
B[j] = password[x];
}
else
{
x = (B[j] - A[j]);
if(x<0)
x = x + 10;
B[j] = password[x];
}
}

if(B_len>A_len)
{
for(j=B_len; j>=1; j--)
printf("%c",B[j]);
printf("\n");
}
else
{
for(j=A_len; j>=1; j--)
printf("%c",B[j]);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: