洛谷P1914 小书童——凯撒密码

这道题其实本质上就是一个偏移量的数学问题,只要计算出字母与'a'之间的偏移量,问题就迎刃而解了。
我们可以计算出每个字母与'a'之间的偏移量,然后再+n,就是这个字母移动的距离,由于移动的距离可能会>26,超过字母z的范围,因此我们对这个结果取26的余数,这样我们就可以控制在0-25之间了。
具体代码如下:
#include <iostream>
using namespace std;
int main()
{
string s;
int n, j;
cin >> n >> s;
for (j = 0; j < s.size(); j++) {
char c = ((s[j] - 'a' + n) % 26 + 'a');
cout << c;
}
return 0;
}
这道题只要弄清楚了偏移量的问题,还是比较好解决的。
浙公网安备 33010602011771号