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

Đếm tất cả bộ bốn từ bốn mảng có XOR bằng X trong C++


Trong hướng dẫn này, ta sẽ thảo luận chương trình để tìm số lượng bộ bốn (quadruples) từ bốn mảng sao cho XOR của chúng bằng X.

Cho bốn mảng và giá trị X. Nhiệm vụ là đếm tất cả bộ bốn (a[i], b[j], c[k], d[l]) có XOR bằng X.

Ví dụ

#include <bits/stdc++.h>
using namespace std;

int count_quad(int a[], int b[], int c[], int d[], int x, int n) {
    int count = 0;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            for(int k = 0; k < n; k++)
                for(int l = 0; l < n; l++)
                    if((a[i] ^ b[j] ^ c[k] ^ d[l]) == x)
                        count++;
    return count;
}

int main() {
    int x = 3;
    int a[] = {0, 1};
    int b[] = {2, 0};
    int c[] = {0, 1};
    int d[] = {0, 1};
    int n = sizeof(a) / sizeof(a[0]);
    cout << count_quad(a, b, c, d, x, n) << endl;
    return 0;
}

Kết quả

4