提交时间:2026-04-10 15:00:17

运行 ID: 86989

#include <iostream> #include <string> #include <cctype> using namespace std; int main() { string s; cin >> s; // 步骤1:大小写反转 for (int i = 0; i < s.size(); i++) { if (islower(s[i])) s[i] = toupper(s[i]); else s[i] = tolower(s[i]); } // 步骤2:逆序 reverse(s.begin(), s.end()); // 步骤3:循环右移3位(解密:左移3位的逆操作) for (int i = 0; i < s.size(); i++) { if (islower(s[i])) { // 小写解密 s[i] = (s[i] - 'a' + 3) % 26 + 'a'; } else { // 大写解密 s[i] = (s[i] - 'A' + 3) % 26 + 'A'; } } // 输出结果 cout << s << endl; return 0; }