测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题