题目背景
对应的选择、判断题:https://ti.luogu.com.cn/problemset/1175
题目描述
小 A 有一个整数 x,他想找到最小的正整数 y 使得下式成立:
(x and y)+(x or y)=2025
其中 and 表示二进制按位与运算,or 表示二进制按位或运算。如果不存在满足条件的 y,则输出 −1。
输入格式
一行,一个整数 x。
输出格式
一行,一个整数,若满足条件的 y 存在则输出 y,否则输出 −1。
输入输出样例
输入 #1复制
1025
输出 #1复制
1000
说明/提示
对于所有测试点,保证 0≤x<2025。
(x and y)+(x or y)=2025
其中:
- and 表示按位与运算,运算符为 &。
- or 表示按位或运算,运算符为 ∣。
代码实现:
cpp
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
int y = 2025 - x;
if (y > 0) {
cout << y << endl;
} else {
cout << -1 << endl;
}
return 0;
}