有一行电文,按下列规律译成密码:
A->Z a->z
B->Y b->y
C->X c->x
.....
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程将密码翻译回原文,并输出原文
R ORPV ZYX
I LIKE ABC
R ORPV ZYX
I LIKE ABC
#include<iostream>
#include<cstring>
#include<cstdio>
char a[101];
using namespace std;
int main()
{
gets(a);
int n=strlen(a);
for(int i=0;i<n;i++)
{
if(a[i]<='z'&&a[i]>='a')
{
if(a[i]=='a') a[i]='z';
else {int j;j=a[i]-'a';
a[i]=char('a'+26-1-j);
}}
else if(a[i]<='Z'&&a[i]>='A')
{
if(a[i]=='A') a[i]='Z';
else {int j;j=a[i]-'A';
a[i]=char('A'+26-1-j);
}}
else continue;
}
for(int i=0;i<n;i++)
{
cout<<a[i];
}
return 0;
}