本文主要是介绍[2021.11.22]UPC-2021级计算机2021随堂测验第五场21281 Problem D 小书童——凯撒密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱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);}elseprintf("%c",t[i]+n);}
}
如有纰漏,请多多指正!!
这篇关于[2021.11.22]UPC-2021级计算机2021随堂测验第五场21281 Problem D 小书童——凯撒密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!