返回首页 返回题库

2025

C++ 简单 GESP三级真题 #位运算

题目描述

题面描述

小A有一个整数x,他想找到最小的正整数y使得下式成立:(x and y) + (x or y) = 2025

其中and表示二进制按位与运算,or 表示二进制按位或运算。如果不存在满足条件的y,则输出-1。

输入格式

一行,一个整数x。

输出格式

一行,一个整数,若满足条件的y存在则输出y,否则输出-1。

样例1

输入:

1025

输出:

1000

数据范围

对于所有测试点,保证 0 ≤ x < 2025。

提示

其中:

  • and 表示按位与运算,运算符为 & 。
  • or表示按位或运算,运算符为 | 。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察知识点:按位与、按位或运算,循环结构,条件判断。解题思路:可以从1开始遍历到2025寻找第一个满足条件的正整数i;也可以利用位运算性质((x & y)+(x | y)=x+y)直接计算y=2025-x,判断i是否为正整数即可,后者效率更高。
⚙ 开始做这道题 1 人做过 · 2 收藏 · 16 浏览

讨论(0)