题目描述
查看题目信息
小明迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。
小名虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 nn 位形成的。z
的下一个字母是 a
,如此循环。他现在找到了移动前的原文字符串及 nn,请你求出密码。
输入格式
第一行:n。第二行:未移动前的一串字母
输出格式
一行,是小明的密码
样例输入
1 qwe
样例输出
rxf
问题提示
字符串长度<=50
直接上代码
#include <bits/stdc++.h>
//也可用 #include <iostream>
// #include <cstring>
using namespace std;
int n;
int main() {
cin>>n;
n%=26;//因为'z'要循环到'a',如果超过循环1次就会错误,那就模拟成1次
string a;
cin>>a;
for(int i=0;i<a.size();i++)//注意string范围,从零开始
{
//也可用char数组来存储 但题目中没有范围,评测得看运气
if(a[i]+n>'z')//判断 也可用char(122)也行,'a'=char(97),'a'=char(122)
{
cout<<char(a[i]+n-26);//这里是把a[i]当成一个数,所以要用char() 强制类型转换
continue;
}
cout<<char(a[i]+n);//这里是把a[i]当成一个数,所以要用char() 强制类型转换
}
return 0;
}