P1914 小书童——凯撒密码

1.题目介绍

小书童——凯撒密码

题目背景

某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。

题目描述

蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z 的下一个字母是 a,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。

输入格式

第一行:n。第二行:未移动前的一串字母。

输出格式

一行,是此蒟蒻的密码。

样例 #1

样例输入 #1

1
qwe

样例输出 #1

rxf

提示

字符串长度 501n26

2.题解

2.1 使用求余%来表示循环

思路

这里唯一一个难点当ch+n超出'z'时,如何进行循环?
这里就可以采用偏移量+求余的方式进行
即 (ch - 'a' + n) % 26(偏移量) + 'a'(基值)

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	string str;
	cin >> str;
	for(char ch: str){
		ch = (ch - 'a' + n) % 26 + 'a';
		cout << ch; 
	} 
}
posted @   DawnTraveler  阅读(154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示