#include

#include

#include // 用于reverse函数

using namespace std;

int main() {

string encrypted;

cin >> encrypted;  // 输入加密字符串

// 解密步骤(反向操作加密步骤)

// 步骤1:大小写反转(加密的第三步,解密的第二步)

for (char &ch : encrypted) {

    if (ch >= 'A' && ch <= 'Z') {

        ch = ch + 32;  // 大写转小写

    }

    else if (ch >= 'a' && ch <= 'z') {

        ch = ch - 32;  // 小写转大写

    }

}

// 步骤2:逆序存储(加密的第二步,解密的第二步)

reverse(encrypted.begin(), encrypted.end());


// 步骤3:循环右移三个位置(加密的第一步是循环左

移,解密就是循环右移)

for (char &ch : encrypted) {

    if (ch >= 'A' && ch <= 'Z') {

        // 处理大写字母

        ch = ch + 3;

        if (ch > 'Z') {

            ch = ch - 26;  // 超过Z就回到A

        }

    }

    else if (ch >= 'a' && ch <= 'z') {

        // 处理小写字母

        ch = ch + 3;

        if (ch > 'z') {

            ch = ch - 26;  // 超过z就回到a

        }

    }

}

cout << encrypted << endl;

return 0;

}

0 条评论

目前还没有评论...

信息

ID
139
时间
1000ms
内存
256MiB
难度
5
标签
(无)
递交数
205
已通过
73
上传者