凯撒密码
1125: 愷撒密碼
Time Limit: 1 SecMemory Limit: 128 MB
Description
愷撒生活在充滿危險(xiǎn)和陰謀的時(shí)代. 愷撒面對(duì)的最困難的問題是生存. 為了生存, 他決定創(chuàng)造一種密碼. 這種密碼聽起來難以置信, 如果不知
道方法, 沒有人可以破解.
你是愷撒軍隊(duì)的一個(gè)上尉. 你的工作是解密消息并將之提供給將軍. 密碼很簡單. 對(duì)明文的每個(gè)字母右移5個(gè)位置以創(chuàng)建密文 (如字母'A', 密
文是'F').
有如下對(duì)應(yīng):
密文
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
只有字母需要移位, 其它字符保持不變, 所有字母均是大寫.
Input
輸入為至多100組數(shù)據(jù). 每組數(shù)據(jù)有如下格式, 中間無空行.
一組數(shù)據(jù)有3部分:
起始行 - 單獨(dú)一行: "START"
密文 - 單獨(dú)一行, 包含1到200個(gè)字符, 組成愷撒的消息.
結(jié)束行 - 單獨(dú)一行: "END"
最后一組輸入是單獨(dú)一行: "ENDOFINPUT".
Output
對(duì)每組數(shù)據(jù)有一行輸出. 即愷撒的原始消息.
Sample Input
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
Sample Output
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
HINT
Source
吉首大學(xué)軟件學(xué)院
1 #include <stdio.h>
2 #include <string.h>
3 int main()
4 {
5 char a[202],c[11],d[10];
6 while(gets(c))
7 {
8 if(strcmp(c,"ENDOFINPUT")==0)
9 return 0;
10 gets(a);
11 gets(d);
12 int n=strlen(a);
13 for(int i=0; i<n; i++)
14 {
15 if(a[i]>='F'&&a[i]<='Z')
16 {
17 printf("%c",a[i]-5);
18 }
19 else if(a[i]>='A'&&a[i]<='E')
20 {
21 printf("%c",a[i]+26-5);
22 }
23 else
24 printf("%c",a[i]);
25 }
26 printf("
");
27 }
28 return 0;
29 }
總結(jié)
- 上一篇: 空调机显示26℃,海尔智家程序显示25℃
- 下一篇: 三星三季度营业利润同比下滑78% 芯片业