只有20分求助QAQ

P1914 小书童——凯撒密码

两个问题 1:你输出a[i]时候,i有可能会大于等于26,这时候你的数组a中后面是没有的。。 2:是字符偏移n,不是索引i偏移n
by wuwendi123 @ 2024-03-07 15:10:10


@[wuwendi123](/user/784606) 没懂,我应该怎么修改QAQ
by Freya_ @ 2024-03-07 16:58:42


@[Freya_](/user/1131627) 可以这样去处理一下字符,首先s[i]-'a'是找出当前字符距离a的偏移量,然后加上n1,这个时候可以计算加密后距离'a'的偏移量,取余26就是防止溢出,然后余数为0到25,再加上'a'就可以了 ```c #include<bits/stdc++.h> using namespace std; int main(){ string s; int n1; cin>>n1>>s; for(int i=0;i<s.size();i++){ char c = (s[i]-'a'+n1) % 26 + 'a'; cout<<c; } return 0; } ```
by wuwendi123 @ 2024-03-07 17:15:23


@[wuwendi123](/user/784606) 明白了,谢谢!
by Freya_ @ 2024-03-11 14:00:38


|