洛谷 P1914 小书童——密码
2019-06-02
题目 : 洛谷 P1914 小书童——密码 : https://www.luogu.org/problemnew/show/P1914
题目背景
某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。
题目描述
蒟蒻虽然忘记密码,但他还记得密码是由一串字母组成。且密码是由一串字母每个向后移动n为形成。z的下一个字母是a,如此循环。他现在找到了移动前的那串字母及n,请你求出密码。(均为小写)
输入输出格式
输入格式:第一行:n。第二行:未移动前的一串字母
输出格式:一行,是此蒟蒻的密码
输入输出样例
输入样例#1:
1 qwe
输出样例#1:
rxf
说明
字符串长度<=50
这题没什么说的。
只要注意有26个不是24个英文字母。
在计算移动后的ASCLL码时,不要直接在字符串上计算,因为当 n较大时,会出现问题,所以转化为 int类型计算,然后直接取余,重新转化回ASCLL码赋值给字符串。
AC代码:
1 // 2 #include <bits/stdc++.h> 3 using namespace std; 4 typedef unsigned long long ll; 5 #define ri register ll 6 ll gcd(ll a,ll b) {return b? gcd(b,a%b):a;} 7 8 ll n,l; 9 string s; 10 11 signed main() 12 { 13 ios::sync_with_stdio(0),cin.tie(0); 14 cin>>n>>s; 15 l=s.length(); 16 for(ri i=0;i<=l-1;i++) 17 { 18 ri k=s[i]-'a'; 19 k+=n; 20 k%=26; 21 s[i]=k+'a'; 22 } 23 cout<<s; 24 return 0; 25 } 26 //