在这个问题上,我们得到了一个数字。我们的任务是在数字的二进制表示形式中找到0和1计数的XOR。
让我们举个例子来了解这个问题,
n = 9
输出结果
0
binary = 1001 Count of 0s = 2 Count of 1s = 2 2 ^ 2 = 0
为了解决此问题,我们将首先转换其二进制等效项的数量,然后遍历该数量的每一位,计数0和1,然后找到计数0和计数1的XOR。
用于说明上述解决方案的程序,
#include<iostream> using namespace std; int countXOR10(int n) { int count0s = 0, count1s = 0; while (n){ (n % 2 == 0) ? count0s++ :count1s++; n /= 2; } return (count0s ^ count1s); } int main() { int n = 21; cout<<"二进制的0和1计数的XOR "<<n<<" 是 "<<countXOR10(n); return 0; }
输出结果
二进制的0和1计数的XOR 21 是 1