洛谷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 @   Tomorrowland_D  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示