第五题
题目
问题描述
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行,表示加密后的密文。
样例输入
lanqiao
样例输出
odqtldr
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100。
此题解决的思路,首先应该注意输入的格式。这道题说明了输入的单词中只包含小写英文字母,那么就简化了这道题的难度,如果没有说明我们应该考虑的是否可能是大写或者是非字母的字符并且分开判断处理,然后的话就是注意对x,y,z的处理了,此题应用java语法中的charAt()函数大大降低了代码量
代码如下
import java.util.Scanner;
public class 凯撒密码 {
public static void main(String[] args ) {
Scanner sc =new Scanner(System.in);
String n=sc.nextLine();
for(int i=0;i<n.length();i++) {
char result =n.charAt(i);
// 把n的第i个char值赋值给result,类似于数组的挨个查找
if(result=='x'||result=='y'||result=='z') {
result=(char)(result-23);
}
//这里要仔细读题目的要求
else {
result=(char) (result+3);
}
System.out.print(result);
}
}
}