加密的病历单(信息学奥赛一本通-T1137)
生活随笔
收集整理的這篇文章主要介紹了
加密的病历单(信息学奥赛一本通-T1137)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目描述】
小英是藥學(xué)專業(yè)大三的學(xué)生,暑假期間獲得了去醫(yī)院藥房實(shí)習(xí)的機(jī)會。
在藥房實(shí)習(xí)期間,小英扎實(shí)的專業(yè)基礎(chǔ)獲得了醫(yī)生的一致好評,得知小英在計(jì)算概論中取得過好成績后,主任又額外交給她一項(xiàng)任務(wù),解密抗戰(zhàn)時(shí)期被加密過的一些傷員的名單。
經(jīng)過研究,小英發(fā)現(xiàn)了如下加密規(guī)律(括號中是一個(gè)“原文 -> 密文”的例子)
? ?1.原文中所有的字符都在字母表中被循環(huán)左移了三個(gè)位置(dec ?-> abz)
? ?2.逆序存儲(abcd -> dcba )
? ?3.大小寫反轉(zhuǎn)(abXY -> ABxy)
【輸入】
一個(gè)加密的字符串。(長度小于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);//計(jì)算字符串長度for(i=0; i<len; i++) //按規(guī)則進(jìn)行加密{if(a[i]>='a'&&a[i]<='z')//小寫的情況{temp=a[i];temp+=3;//向右移動3個(gè)字符if(temp>122) temp-=26;//若為x,y,z,轉(zhuǎn)換為a,b,ctemp-=32;a[i]=temp;//小寫轉(zhuǎn)換為大寫}else if(a[i]>='A'&&a[i]<='Z')//大寫的情況{temp=a[i];temp+=3;//向右移動3個(gè)字符if(temp>90) temp-=26;//若為X,Y,Z,轉(zhuǎn)換為A,B,Ctemp+=32;a[i]=temp;//大寫轉(zhuǎn)換為小寫}}for(i=len-1; i>=0; i--) //逆序輸出cout<<a[i];cout<<endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的加密的病历单(信息学奥赛一本通-T1137)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花生采摘(洛谷-P1086)
- 下一篇: 浮点数向零舍入(信息学奥赛一本通-T10