洛谷 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 //

 

 

 

posted @ 2019-06-02 13:12  敲可耐的螺旋藻  阅读(329)  评论(0编辑  收藏  举报