A28445. 2025
填空题
中等
知识点
题目描述
2025
题目描述
小 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表示按位或运算,运算符为 | 。
参考答案
#include <cstdio>
using namespace std;
int x;
int main() {
scanf("%d", &x);
for (int i = 1; i <= 2025; i++)
if ((x & i) + (x | i) == 2025) {
printf("%d\n", i);
return 0;
}
printf("-1\n");
return 0;
}
上一题
下一题