题目描述
某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。
蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z 的下一个字母是 a,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。
输入
第一行:一个整数n,含义见题目描述。第二行:未移动前的一串字母,字符串长度<=50
输出
一行,是此蒟蒻的密码
样例输入 Copy
1 qwe
样例输出 Copy
rxf
题很简单,但很多同学(包括我)错误的原因竟然是超出了char的表示范围
char 范围应该是-127~127 而z的ascii码值已经是122了 加n超出范围后会出错...
有意识地规避该点就行啦
下面是我的代码 : )
#include <cstdio>
int main()
{
long long int n;
char t[100];
scanf("%lld",&n);
if(n>=26)
n%=26;
scanf("%s",t);
for(int i=0;t[i]!='\0';i++){
if(t[i]-'a'+n>25){
printf("%c",t[i]+n-26);
}
else
printf("%c",t[i]+n);
}
}
如有纰漏,请多多指正!!