1 条题解

  • 0
    @ 2026-1-28 17:36:53
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n;
        cin>>n; // [1] 读取输入的整数n,确定遍历的上限
        // [2] 遍历所有1000到n之间的四位数,检查是否符合条件
        for(int i = 1000; i <= n; i++){
            int g=i%10;          // [3] 提取当前数的个位
            int s=i/10%10;       // [4] 提取当前数的十位
            int b=i/10/10%10;    // [5] 提取当前数的百位
            int q=i/10/10/10%10; // [6] 提取当前数的千位
            // [7] 生成千位与十位对调、百位与个位对调后的新数
            int num=s*1000+q*10+b+g*100;
            // [8] 判断条件:当前数是奇数 且 对调后的数与原数相等
            if(i%2!=0 && i==num){
                cout<<i<<endl; // [9] 输出符合条件的数,每行1个
            }
        }
    
        return 0;
    }
    
    • 1

    信息

    ID
    46
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    1
    已通过
    1
    上传者