时间限制: 1Sec 内存限制: 128MB
题目描述:(原题链接)
恺撒生活在充满危险和阴谋的时代. 恺撒面对的最困难的问题是生存. 为了生存, 他决定创造一种密码. 这种密码听起来难以置信, 如果不知道方法, 没有人可以破解.
你是恺撒军队的一个上尉. 你的工作是解密消息并将之提供给将军. 密码很简单. 对明文的每个字母右移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个字符, 组成恺撒的消息.
结束行 - 单独一行: “END”
最后一组输入是单独一行: “ENDOFINPUT”.
样例输入:
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
解题思路:
将字母进行固定变化,然后输出
注意事项:
注意变化的函数
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(in.hasNext()) {
String start=in.nextLine();
if(start.equals("ENDOFINPUT")) {
break;
}
else {
String s =in.nextLine(),tmp="";
@SuppressWarnings("unused")
String end=in.nextLine();
for(int i=0;i<s.length();i++) {
if(s.charAt(i)>='A'&&s.charAt(i)<='Z') {
tmp =tmp+(char)((s.charAt(i)-'A'+21)%26+'A'); //注意转换
}else
tmp =tmp+s.charAt(i);
}
System.out.println(tmp);
}
}
in.close();
}
}