蓝桥杯——最小的或运算
问题描述
给定整数 a,b,求最小的整数 x,满足 a∣x=b∣x,其中 ∣ 表示或运算。
输入格式
第一行包含 2 个正整数 a,b。
输出格式
输出共 1 行,包含 1 个整数,表示最终答案。
样例输入
4 5
样例输出
1
评测数据规模
对于所有测评数据,0≤a,b<264。
代码如下:
#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
int main()
{
ull a, b; cin >> a >> b;
ull ans = 0;
for (int i = 0; i <= 63; i++) {
if (((a >> i) & 1ll) ^ ((b >> i) & 1ll)) ans |= (1ll << i);
}
cout << ans;
return 0;
}