RingTouSou @ 2023-09-14 23:05:00
#include<bits/stdc++.h>
using namespace std;
string a,zi("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
int main()
{
int n;
cin>>n>>a;
for(int i=0;i<=a.length()-1;i++)
cout<<zi[zi.find(a[i])+n];
return 0;
}
by One_JuRuo @ 2023-09-14 23:29:15
@RingTouSou
可能是什么黑科技吧,但是不建议用,当n真的大的时候是会错的,比如n是500的时候。
理论上n较大的时候,越界就应该会错,因为字符串最多在最后加一个 \0
,这样访问确实会越界,至于为什么在n较小且明显越界的情况下可以对,我也不知道qwq
by RingTouSou @ 2023-09-14 23:32:23
@One_JuRuo 谢谢大佬!
by One_JuRuo @ 2023-09-14 23:42:52
@RingTouSou 刚刚又想了一下,猜测是数据根本没有出 +'a'-1
,这样就可以转为 char,然后输出,通过洛谷的错误点预览看自己输出的有没有不是小写字母的,如果有就代表出现过
其他情况建议直接 %26
保证不会越界。
另外,我直接循环输出,会发现超过范围就会乱码,但是单独输出时,
by RingTouSou @ 2023-09-15 10:55:46
@One_JuRuo 好的,谢谢佬 但确实感觉有时候写洛谷这些数据有点玄学