题解 | 简单密码:字符的循环平移问题,注意输入格式
#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; } } }#考研复试机试上机个人解析##考研#