A20184. 计算不同位
填空题
较难
知识点
题目描述
计算不同位
题目描述
给你两个正整数 m、n,请问它们二进制位上有多少位是不同的。
输入
两个正整数 n、m。
输出
一个整数,表示答案。
数据范围
1≤n、m≤109。
输入样例1
2 1输出样例1
2输入样例2
3 17输出样例2
2输入样例3
233 233输出样例3
0参考答案
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, ans = 0;
unsigned int mask = 1;
cin >> n >> m;
for(int i=0; i<32; i++) {
if((n & mask) != (m & mask))
ans++;
mask<<=1; //左移一位
}
cout << ans;
return 0;
}
上一题
下一题