【qduoj】C语言_凯撒密码
題干:
描述
?
? 據(jù)說(shuō)最早的密碼來(lái)自于羅馬的凱撒大帝。消息加密的辦法是:對(duì)消息原文中的每個(gè)字母,分別用該字母之后的第5個(gè)字母替換(例如:消息原文中的每個(gè)字母A都分別替換成字母F)。而你要獲得消息原文,也就是要將這個(gè)過(guò)程反過(guò)來(lái)。
密碼字母: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?
(注意:只有字母會(huì)發(fā)生替換,其他非字母的字符不變,并且消息原文的所有字母都是大寫的。)
在最后一個(gè)數(shù)據(jù)集之后,是另一行:ENDOFINPUT。
輸出:
輸入
?
最多不超過(guò)100個(gè)數(shù)據(jù)集組成,每個(gè)數(shù)據(jù)集之間不會(huì)有空行,每個(gè)數(shù)據(jù)集由3部分組成: 1. 起始行:START 2. 密碼消息:由1到200個(gè)字符組成一行,表示凱撒發(fā)出的一條消息. 3. 結(jié)束行:END
輸出
?
每個(gè)數(shù)據(jù)集對(duì)應(yīng)一行,是凱撒的原始消息。
輸入樣例 1?
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輸出樣例 1
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解題報(bào)告:
? ? ?直接轉(zhuǎn)化成取模多好呀,代碼又短又易讀,非要switchcase、、、
AC代碼:
#include<cstdio> #include<queue> #include<string> #include<cstring> #include<cmath> #include<map> #include<iostream> #include<algorithm> #define ll long long const ll mod = 1e9+7; using namespace std; //char s[5005]; string s; int main() {while(1) {getline(cin,s);if(s == "START") continue;if(s == "END") continue;if(s == "ENDOFINPUT") break; int len = s.length();for(int i = 0; i<len; i++) {if(s[i] >= 'A' && s[i] <= 'Z') {s[i] = (s[i] - 'A' + 26 - 5) % 26 + 'A'; }}cout << s << endl;}return 0 ; }?
總結(jié)
以上是生活随笔為你收集整理的【qduoj】C语言_凯撒密码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: qvp32.exe - qvp32是什么
- 下一篇: 【POJ - 3250 】Bad Hai