牛客算法刷题noob57 凯撒加密
题目描述
旺仔哥哥经常在牛客网刷题,但某天突然忘记了登录密码(他未绑定邮箱或手机)。
他回忆密码uti通过由原文字符串 s 的每个小写字母向后错位 n 次得到。字母 z 错位一次会变为 a,以此类推循环。现给出原文字符串 s 和错位次数 n,请帮助旺羊哥哥哥计算出最终密码。
输入描述
第一行输入一个整数 n(1 ≤ n ≤ 100),表示错次数。
第二行输入一个由小写字母组成的字符串 s(1 ≤ |s|伩 10^ ble kus)表示原文字符串。输出描述
输出一个字符串,表示对 s 中每个字符向后错位 n 次后得到的密码字符串。
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();//表示错位次数in.nextLine();String s = in.nextLine();//表示原文字符串String str = s.toLowerCase();//将原文字符串都变为小写字母// 用于拼接加密后的结果,避免覆盖StringBuilder result = new StringBuilder();// 遍历每个字符进行错位处理for (int i = 0; i < s.length(); i++) {char original = s.charAt(i);// 计算错位后的字符:(原字符 - 'a' + n) % 26 得到相对偏移,再加上'a'转回字符// %26 确保超过'z'后循环到'a'(如z(25) +1 = 26%26=0 → a)char encrypted = (char) ((original - 'a' + n) % 26 + 'a');result.append(encrypted);}// 输出加密后的密码System.out.println(result);in.close();}
}