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

题目描述

给定一个正整数 𝑛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

详见代码:

cpp 复制代码
#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;
}
相关推荐
郝学胜-神的一滴6 分钟前
干货版《算法导论》04:渐近复杂度与序列接口实战
java·开发语言·数据结构·c++·python·算法
zzzsde6 分钟前
【Linux】信号处理(3)信号处理&&valatile关键字
linux·运维·服务器·开发语言·算法
curry____30310 分钟前
二叉树的前序中序遍历以及用前序和中序求解树
数据结构
洛水水19 分钟前
【力扣100题】47.最长递增子序列
算法·leetcode·职场和发展
科技快报23 分钟前
腾讯地图上线骑手模式 助力解决骑手配送“最后100米”难题
数据结构
木子墨51638 分钟前
系统设计面试 | 实现一个限流器:滑动窗口 → 令牌桶 → 漏桶
java·开发语言·数据结构·数据库·面试·职场和发展
环流_1 小时前
Redis zinterstore
算法
不知名的忻1 小时前
交换排序:冒泡排序 vs 快速排序(Java)
java·算法·排序算法
沃普天科技1 小时前
USB显示器多屏异显多屏拼接IF8032 IT690 VL171 8801 RTD2556
arm开发·驱动开发·算法·计算机外设·音视频·硬件工程·pcb工艺
zz34572981131 小时前
cy语言之指针3
数据结构