凱撒密碼

愷撒生活在充滿危險和陰謀的時代. 愷撒面對的最困難的問題是生存. 爲了生存, 他決定創造一種密碼. 這種密碼聽起來難以置信, 若是不知

道方法, 沒有人能夠破解.

你是愷撒軍隊的一個上尉. 你的工做是解密消息並將之提供給將軍. 密碼很簡單. 對明文的每一個字母右移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

只有字母須要移位, 其它字符保持不變, 全部字母均是大寫.
ios

輸入

輸入爲至多100組數據. 每組數據有以下格式, 中間無空行.

一組數據有3部分:

起始行 - 單獨一行: "START"
密文 - 單獨一行, 包含1到200個字符, 組成愷撒的消息.
結束行 - 單獨一行: "END"

最後一組輸入是單獨一行: "ENDOFINPUT". spa

輸出

對每組數據有一行輸出. 即愷撒的原始消息. code

樣例輸入

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<stdio.h>
#include<string.h> 
using namespace std; 
int main() 
{ 
  char tmp[256],c; 
  int i; 
    while(1) 
    { 
      gets(tmp); 
      if (strcmp(tmp, "ENDOFINPUT") == 0) break; 
      gets(tmp); 
      for (i=0; i<strlen(tmp); i++) 
      { 
        c=tmp[i]; 
        if (c>='A' && c<='Z') putchar((c-'A'+21)%26+'A'); 
        else putchar(c); 
      } 
        putchar('\n'); 
        gets(tmp); 
    } 
    return 0; 
}
相關文章
相關標籤/搜索