Trong bài toán này, chúng ta được đưa ra một con số. Nhiệm vụ của chúng tôi là tìm XOR của số lượng 0 và 1 trong biểu diễn nhị phân của số.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào
n = 9
Đầu ra
0
Giải thích
binary = 1001 Count of 0s = 2 Count of 1s = 2 2 ^ 2 = 0
Để giải quyết vấn đề này, trước tiên chúng ta sẽ chuyển đổi số tương đương nhị phân của nó và sau đó lặp lại từng bit của số, đếm 0 và 1, sau đó tìm XOR của số 0 và đếm 1.
Chương trình minh họa giải pháp trên,
Ví dụ
#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<<"XOR of count of 0s and 1s in binary of "<<n<<" is "<<countXOR10(n); return 0; }
Đầu ra
XOR of count of 0s and 1s in binary of 21 is 1