12:加密的病歷單

自為風月馬前卒發表於2017-02-28

12:加密的病歷單

總時間限制: 
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 }

 

相關文章