1 条题解

  • 0
    @ 2026-1-28 14:42:12
    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int  x; // [2] 输入的整数x
        cin>>x; // [3] 读取输入的x
        int flag=0; // [4] 标记是否找到满足条件的y(0=未找到,1=找到)
    
        // [5] 暴力枚举所有可能的y(i从0到2025,因x<2025,y最大不超过2025)
        for(int i=0;i<=2025;i++){
            // [6] 判断当前i是否满足位运算等式:(x & i) + (x | i) == 2025
            if( (x & i) + (x | i) == 2025){
                flag=1; // 标记找到满足条件的y
                cout<<i; // 输出找到的最小y(循环从0开始,第一个满足的就是最小正整数)
                break; // 找到后跳出循环,无需继续枚举
            }
        }
    
        // [7] 若未找到满足条件的y,输出-1
        if(flag==0) cout<<-1;
        return 0;
    }
    
    • 1

    信息

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