当前位置: 首页> 教育> 锐评 > 上海市计算机学会竞赛平台2024年6月月赛丙组位运算

上海市计算机学会竞赛平台2024年6月月赛丙组位运算

时间:2025/7/9 16:29:29来源:https://blog.csdn.net/a121677_/article/details/140266609 浏览次数:0次
题目描述

给定一个正整数 𝑛n ,请你求出最小的正整数 𝑚m ,使得同时满足以下三个条件:

𝑛 & 𝑚≠0𝑛 ∣ 𝑚≠0𝑛⊕𝑚≠0n & m​=0n ∣ m​=0n⊕m​=0

式中:
&&表示两数与,是指两数在二进制形式下按位做与运算
∣∣表示两数或,是指两数在二进制形式下按位做或运算
⊕⊕ 表示两数异或,是指两数在二进制形式下按位做异或运算,所谓异或,是指不同值异或结果为1,相同值异或结果为0,即:

0⊕0=00⊕1=11⊕0=11⊕1=00⊕0=00⊕1=11⊕0=11⊕1=0

输入格式

输入一个正整数 𝑛n

输出格式

输出一个正整数 ,表示满足最小的正整数 𝑚m

数据范围
  • 对于30%30%的数据:1≤𝑛≤1001≤n≤100
  • 对于60%60%的数据:1≤𝑛≤1051≤n≤105
  • 对于100%100%的数据:1≤𝑛≤2×1091≤n≤2×109
样例数据

输入:

2

输出:

3

说明:

m取1时,2&1=0,不满足
m取2时,2^2=0 (^指异或运算),不满足
m取3时,满足条件:
2&3=2
2|3=3
2^3=1

详见代码:

#include <bits/stdc++.h>
using namespace std;
int main() 
{int n;cin >> n;for(int i = 1;; i++) {if ((i & n) && (i | n) && (i ^ n)) {cout << i;break;}}return 0;
}

关键字:上海市计算机学会竞赛平台2024年6月月赛丙组位运算

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: