加密的病历单(信息学奥赛一本通-T1137)
生活随笔
收集整理的這篇文章主要介紹了
加密的病历单(信息学奥赛一本通-T1137)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
小英是藥學專業大三的學生,暑假期間獲得了去醫院藥房實習的機會。
在藥房實習期間,小英扎實的專業基礎獲得了醫生的一致好評,得知小英在計算概論中取得過好成績后,主任又額外交給她一項任務,解密抗戰時期被加密過的一些傷員的名單。
經過研究,小英發現了如下加密規律(括號中是一個“原文 -> 密文”的例子)
? ?1.原文中所有的字符都在字母表中被循環左移了三個位置(dec ?-> abz)
? ?2.逆序存儲(abcd -> dcba )
? ?3.大小寫反轉(abXY -> ABxy)
【輸入】
一個加密的字符串。(長度小于50且只包含大小寫字母)
【輸出】
輸出解密后的字符串。
【輸入樣例】
GSOOWFASOq
【輸出樣例】
Trvdizrrvj
【源程序】
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {char a[256],temp;int len;int i;gets(a);len=strlen(a);//計算字符串長度for(i=0; i<len; i++) //按規則進行加密{if(a[i]>='a'&&a[i]<='z')//小寫的情況{temp=a[i];temp+=3;//向右移動3個字符if(temp>122) temp-=26;//若為x,y,z,轉換為a,b,ctemp-=32;a[i]=temp;//小寫轉換為大寫}else if(a[i]>='A'&&a[i]<='Z')//大寫的情況{temp=a[i];temp+=3;//向右移動3個字符if(temp>90) temp-=26;//若為X,Y,Z,轉換為A,B,Ctemp+=32;a[i]=temp;//大寫轉換為小寫}}for(i=len-1; i>=0; i--) //逆序輸出cout<<a[i];cout<<endl;return 0; }總結
以上是生活随笔為你收集整理的加密的病历单(信息学奥赛一本通-T1137)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花生采摘(洛谷-P1086)
- 下一篇: 信息学奥赛C++语言:最大数max(x,