题目背景
某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。
题目描述
蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z
的下一个字母是 a
,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。
输入格式
第一行 n。第二行:未移动前的一串字母。
输出格式
一行,是此蒟蒻的密码。
输入输出样例
输入 #1复制
1 qwe
输出 #1复制
rxf
说明/提示
字符串长度 ≤50,1≤n≤26。
#include <iostream>
using namespace std;
int main()
{
int n, i;
char A[50 + 1]; //预留\0的位置
cin >> n >> A; //输入n和原字符串
for (i = 0; i < 50 + 1; i++)
{
if (A[i] >= 97 && A[i] <= 122) //对字符串中的小写字母进行操作
{
while (A[i] + n > 122) //如果后移n位后超出小写字母范围
n = n - 26; //那么n缩水一圈直至原小写字母后移n位后仍是小写字母
A[i] = A[i] + n; //逐一得到密码
}
}
cout << A; //输出密码
return 0;
}
该题主要是应先对n处理,不能先后移n位之后再考虑超出小写字母范围~
标签:洛谷,小书童,小写字母,字母,P1914,50,密码,字符串 From: https://blog.csdn.net/2401_86982397/article/details/143897081