Gerk


私信TA

用户名:xbyyb2014

访问量:1594

签 名:

等  级
排  名 389
经  验 4981
参赛次数 1
文章发表 15
年  龄 0
在职情况 学生
学  校 北京邮电大学
专  业

  自我简介:

解题思路:

    加密时:

        1. 反转

        2. 大小写转换

        3. 循环左移3位

    则解密时:

        1. 反转

        2. 大小写转换

        3. 循环右移3位


注意事项:

参考代码:

#include <iostream>
// #include <sstream>
// #include <cstdio>
#include <algorithm>
// #include <cmath>
// #include <cstdlib>
// #include <cstring>
#include <cctype>
// #include <string>
// #include <climits>
// #include <map>
// #include <vector>
// #include <list>
// #include <set>
using namespace std;
// const int maxn = 40004;
// const long long MOD = 100000007;
// const double PI = acos(-1.0);

int main() {
    /* input */
    string s;
    cin >> s;

    /* decode
        1. reverse
        2. upper to lower, lower to upper
        3. 'A'+3 -> 'D', 'Z'+3->'C'
    */
    reverse(s.begin(), s.end());
    for (int i = 0; i < s.size(); i++) {
        if (isupper(s[i])) s[i] = tolower(s[i]);
        else s[i] = toupper(s[i]);
        s[i] += 3;
        if ( !isalpha(s[i]) ) s[i] -= 26;
    }

    /* output */
    cout << s << endl;

    return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区