题目描述 Description
密码战中A国的密码被我们成功破译,所以A国想出另外一条密码规则:
密码仍然为一串字符串,字符串里面每5个字符分为1组;
第一组字符串里面的字母转化为其后的第二个字母,例如:A--C,a--c,Y--A,y--a;
第二组字符串里面的字母转化为其前的第二个字母,例如:C--A,c--a,A--Y,a--y;
后面的字符串的字母全部转化为其后的第一个字母,例如:A--B,a--b,Z--A,z--a。
(除了字母以外的其他字符都不进行变化)
无奈我国再次截取了他们的密码,请将截获的密码翻译成原先的密码。
输入描述 Input Description
截取的字符串密码,密码字符个数为(1-50)
输出描述 Output Description
破译后的字符串密码
样例输入 Sample Input
NfjTCmianWGoiA
样例输出 Sample Output
LdhRAokcpYFnhZ
1 #include <iostream> 2 #include <string.h> 3 #include <cstdio> 4 5 using namespace std; 6 7 int main() 8 { 9 char s[55]; 10 gets(s); 11 for(int i=0;i<=4;i++) 12 { 13 if(s[i]>='a' && s[i]<='z') 14 s[i]=(s[i]-2-'z')%26+'z'; 15 else if(s[i]>='A' && s[i]<='Z') 16 s[i]=(s[i]-2-'Z')%26 + 'Z'; 17 } 18 for(int i=5;i<=9;i++) 19 { 20 if(s[i]>='a' && s[i]<='z') 21 s[i]=(s[i]+2-'a')%26 + 'a'; 22 else if(s[i]>='A' && s[i]<='Z') 23 s[i]=(s[i]+2-'A')%26 + 'A'; 24 } 25 for(int i=10;i<strlen(s);i++) 26 { 27 if(s[i]>='a' && s[i]<='z') 28 s[i]=(s[i]-1-'z')%26+'z'; 29 else if(s[i]>='A' && s[i]<='Z') 30 s[i]=(s[i]-1-'Z')%26 + 'Z'; 31 } 32 puts(s); 33 return 0; 34 }