测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题