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 }