洛谷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;
}

这道题只要弄清楚了偏移量的问题,还是比较好解决的。

posted @ 2024-07-09 12:05  Tomorrowland_D  阅读(76)  评论(0)    收藏  举报