总时间限制: 1000ms 内存限制: 65536kB描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。 在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。 经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子) 1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz) 2. 逆序存储(abcd -> dcba ) 3. 大小写反转(abXY -> ABxy)
输入一个加密的字符串。(长度小于50且只包含大小写字母)输出输出解密后的字符串。样例输入
GSOOWFASOq
样例输出
Trvdizrrvj
来源医学部计算概论2011年期末考试(王志钢)改编
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 using namespace std;
5 char a[100001];
6 char ans[1001];
7 int now;
8 int main()
9 {
10 gets(a);
11 int l=strlen(a);
12 for(int i=0;i<l;i++)
13 {
14 if(a[i]>=65&&a[i]<=90)a[i]=a[i]+32;
15 else a[i]=a[i]-32;
16 }//大小写转换
17 for(int i=l-1;i>=0;i--)
18 {
19 ans[now]=a[i];
20 now++;
21 } //倒序
22 for(int i=0;i<l;i++)
23 {
24 if((ans[i]>=65&&ans[i]<=87)||(ans[i]>=97&&ans[i]<=119))
25 ans[i]=ans[i]+3;
26 else
27 {
28 ans[i]=ans[i]-23;
29 }
30 }
31 puts(ans);
32 return 0;
33 }