Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

XOR số lượng bit 0 và 1 trong biểu diễn nhị phân C++

Trong bài toán này, cho một số. Nhiệm vụ tìm XOR của số lượng bit 0 và bit 1 trong biểu diễn nhị phân của số đó.

Ví dụ:

Input

n = 9

Output

0

Giải thích

nhị phân = 1001
Số bit 0 = 2
Số bit 1 = 2
2 ^ 2 = 0

Cách giải: chuyển số sang nhị phân, duyệt từng bit đếm 0 và 1, sau đó XOR hai số đếm.

Ví dụ minh họa

#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 số bit 0 và 1 trong nhị phân của " << n << " là " << countXOR10(n);
    return 0;
}

Kết quả

XOR số bit 0 và 1 trong nhị phân của 21 là 1