1009: 愷撒Caesar密碼
時間限制: 10 Sec 內存限制: 128 MB提交: 349 解決: 215
[提交][狀態][討論版]
題目描述
Julius Caesar 生活在充滿危險和陰謀的年代。為了生存,他首次發明了密碼,用於軍隊的消息傳遞。假設你是Caesar 軍團中的一名軍官,需要把Caesar 發送的消息破譯出來、並提供給你的將軍。消息加密的辦法是:對消息原文中的每個字母,分別用該字母之后的第5個字母替換(例如:消息原文中的每個字母A都分別替換成字母F),其他字符不 變,並且消息原文的所有字母都是大寫的。 密碼字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
輸入
最多不超過100個數據集組成。每個數據集由3部分組成:起始行:START 密碼消息:由1到200個字符組成一行,表示Caesar發出的一條消息結束行:END 在最后一個數據集之后,是另一行:ENDOFINPUT
輸出
每個數據集對應一行,是Caesar 的原始消息。
樣例輸入
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT
樣例輸出
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
提示
來源
#include <iostream>
#include <string.h>
using namespace std;
int main(){
string str = "VWXYZABCDEFGHIJKLMNOPQRSTU";
string inputStr;
int i;
while(1){
getline(cin,inputStr);
if(inputStr=="ENDOFINPUT") break;
getline(cin,inputStr);
for(i=0;inputStr[i]!='\0';i++){
if(inputStr[i]>='A'&&inputStr[i]<='Z'){
cout<<str[inputStr[i]-'A'];
}else{
cout<<inputStr[i];
}
}
cout<<endl;
getline(cin,inputStr);
}
return 0;
}