1 条题解

  • 0
    @ 2025-9-16 0:49:39

    核心逻辑

    将三位数的百位与个位对调,需通过数值运算拆分重组,避免前导零(如200对调后应为2而非002):

    1. 拆分数位:百位 = 数 // 100,十位 = (数 // 10) % 10,个位 = 数 % 10;
    2. 重组新数:新数 = 个位 × 100 + 十位 × 10 + 百位(自动去除前导零)。

    代码实现

    C

    #include <stdio.h>
    
    int main() {
        int n;
        scanf("%d", &n);
        int hundred = n / 100;          // 百位
        int ten = (n / 10) % 10;        // 十位
        int unit = n % 10;              // 个位
        printf("%d\n", unit * 100 + ten * 10 + hundred);  // 重组输出
        return 0;
    }
    

    C++

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        int hundred = n / 100;
        int ten = (n / 10) % 10;
        int unit = n % 10;
        cout << unit * 100 + ten * 10 + hundred << endl;
        return 0;
    }
    

    Python

    n = int(input())
    hundred = n // 100          # 百位
    ten = (n // 10) % 10        # 十位
    unit = n % 10               # 个位
    print(unit * 100 + ten * 10 + hundred)  # 重组输出,自动去前导零
    

    验证

    • 样例输入123:拆分得百位1、十位2、个位3,重组为3×100 + 2×10 + 1 = 321,正确。
    • 输入200:拆分得百位2、十位0、个位0,重组为0×100 + 0×10 + 2 = 2,正确(无ulead零)。

    所有三位数输入均能正确处理,符合题目要求。

    • 1

    信息

    ID
    431
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    21
    已通过
    12
    上传者