【qduoj】C语言_凯撒密码
生活随笔
收集整理的這篇文章主要介紹了
【qduoj】C语言_凯撒密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
描述
?
? 據說最早的密碼來自于羅馬的凱撒大帝。消息加密的辦法是:對消息原文中的每個字母,分別用該字母之后的第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?
(注意:只有字母會發生替換,其他非字母的字符不變,并且消息原文的所有字母都是大寫的。)
在最后一個數據集之后,是另一行:ENDOFINPUT。
輸出:
輸入
?
最多不超過100個數據集組成,每個數據集之間不會有空行,每個數據集由3部分組成: 1. 起始行:START 2. 密碼消息:由1到200個字符組成一行,表示凱撒發出的一條消息. 3. 結束行:END
輸出
?
每個數據集對應一行,是凱撒的原始消息。
輸入樣例 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解題報告:
? ? ?直接轉化成取模多好呀,代碼又短又易讀,非要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 ; }?
總結
以上是生活随笔為你收集整理的【qduoj】C语言_凯撒密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qvp32.exe - qvp32是什么
- 下一篇: 【POJ - 3250 】Bad Hai