题解 | 简单密码:字符的循环平移问题,注意输入格式
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
while (getline(cin,s)) {
if(s=="START"||s=="END") //终止本次循环
{
continue;
}
else if(s=="ENDOFINPUT") //终止整个循环
{
break;
}
else
{
for(int i=0; i<s.size(); i++)
{
if('A'<=s[i]&&s[i]<='Z')
{
s[i]=(s[i]-'A'-5+26)%26+'A';
/*
由密文解明文,s[i]-'A' 将字符转为从0开始的偏移量,减去5,然后通过 % 26 保证结果在0到25之间,最后加上 'A' 转回字母。
*/
}
}
cout << s;
}
}
}
#考研复试机试上机个人解析##考研#
