top1编程
← 返回题目
题解

【入门】加密四位数

1 条题解

  • 0
    @ 2026-7-30 1:34:11

    解题思路

    逐位加5取余,再从最后一位向前输出,完成加密和反转。

    参考代码

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string s;
        cin >> s;
        for (int i = 0; i < 4; i++) {
            int a = s[i] - '0';
            // 每一位先加5,再对10取余数。
            s[i] = (a + 5) % 10 + '0';
        }
        // 从最后一位到第一位输出,就完成了颠倒。
        for (int i = 3; i >= 0; i--) cout << s[i];
        // 逐位处理可以保留每一位的数字形式。
        return 0;
    }
    

    复杂度分析

    代码只使用了简单变量、循环和字符串。设输入长度为 n,时间复杂度为 O(n^2)(若有嵌套枚举则按实际循环计算),额外空间复杂度为 O(n)。

    • 1