高级光能
1091 战时密码本经验值:0
题目描述 Description
国家博物馆有一本战时密码本,其中记录了一些关键信息,通过博物馆管理员介绍,加密过程如下:
1.所有字符逆向存储(如:ABCD——>DCBA);
2.所有字符在字母表中被循环右移两个单位(如:ABCD——>CDEF);
3.所有字符大小写替换(ABCD——abcd)。
小明翻阅了那本战时密码本,记住了一串字符,请你根据加密规则,找出其原字符串。
输入描述 Input Description
输入为一行,为战时密码本的一行字符串(全为字母,且长度不超过100)。
输出描述 Output Description
输出为一行,为战时密码本对应的原字符串。
样例输入 Sample Input
AbcD
样例输出 Sample Output
bAZy
错误代码样例没过:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
getline(cin,s);
for(int i=0;i<s.size();i++){
if(s[i]>='a'&&s[i]<='z')
s[i]-=32;
else if(s[i]>='A'&&s[i]<='Z')
s[i]+=32;
}
for(int i=0;i<=s.size()-1;i++){
if(s[i]>='C'&&s[i]<='Z'||s[i]>='c'&&s[i]<='z')
s[i]-=2;
if(s[i]=='A'||s[i]=='a')
s[i]+='y'-'a';
if(s[i]=='B'||s[i]=='b')
s[i]+='z'-'b';
}
for(int i=s.size()-1;i>=0;i--){
cout<<s[i];
}
cout<<s;
return 0;
}
请大佬找错