top1编程
← 返回题目
题解

【入门】求任意三位数打乱次序后的最大值

1 条题解

  • 0
    @ 2026-7-30 0:42:29

    解题思路

    按照题目要求直接计算。代码中使用简单的循环、判断和数组,把每一步写出来,方便理解。

    参考代码

    // 读取题目给出的数据。
    // 按照题意完成计算。
    // 输出最终答案。
    #include <iostream>
    using namespace std;
    int main() {
        int x;
        cin >> x;
        int a[3] = {x / 100, x / 10 % 10, x % 10};
        for (int i = 0; i < 3; i++) {
            for (int j = i + 1; j < 3; j++) {
                if (a[i] < a[j]) {
                    int t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }
            }
        }
        cout << a[0] * 100 + a[1] * 10 + a[2] << endl;
        return 0;
    }
    

    复杂度

    代码只使用了题目需要的循环、判断和数组。若有 n 次循环,时间复杂度为 O(n);只使用固定数量变量时,空间复杂度为 O(1)。

    • 1