Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ tìm số Tổng XOR của ai với mảng cho sẵn là số cho trước k

Để giải quyết một vấn đề trong đó, đã cho, chúng tôi có nhiệm vụ tìm số sao cho tổng XOR của một mảng nhất định với số đó trở thành bằng k, chẳng hạn.

Input: arr[] = {1, 2, 3, 4, 5}, k = 10
Output: 11
Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10

Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6
Output: 73

Trong chương trình này, chúng ta sẽ sử dụng thuộc tính xor nếu A ^ B =C và A ^ C =B, và chúng ta sẽ áp dụng điều này trong bài toán này.

Phương pháp tiếp cận để tìm giải pháp

Trong cách tiếp cận này, chúng ta sẽ sử dụng thuộc tính trên của toán tử xor ngay bây giờ. Đối với vấn đề này, bây giờ chúng ta duyệt qua mảng và sau đó nếu chúng ta đặt số với k, đó sẽ là câu trả lời của chúng ta.

Ví dụ

Mã C ++ cho phương pháp tiếp cận trên

 
#include <bits/stdc++.h>
using namespace std;
int main(){
    int arr[] = { 1, 2, 3, 4, 5 }; // given array
    int n = sizeof(arr) / sizeof(int); // size of our array
    int k = 10; // given k
    int answer = 0;
    for(int i = 0; i < n; i++) // traversing the array for
       // xor sum
       answer ^= arr[i];

    answer ^= k; // XORing with k to get our answer
    cout << answer << "\n"; // printing our answer
    return 0;
}

Đầu ra

11

Giải thích cho Cách tiếp cận Trên

Trong cách tiếp cận này, chúng ta sẽ sử dụng một số thuộc tính của toán tử xor, vì vậy, chúng ta chỉ cần duyệt qua mảng và sau đó tìm tổng xor của toàn bộ mảng, sau đó chúng ta xor rằng tổng xor với k và rằng câu trả lời và sau đó chúng tôi in câu trả lời của mình.

Kết luận

Trong hướng dẫn này, chúng tôi giải quyết việc tìm Số có tổng XOR với một mảng cho trước là một số k cho trước. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và cách tiếp cận hoàn chỉnh (Bình thường) mà chúng tôi đã giải quyết vấn đề này. Chúng ta có thể viết cùng một chương trình bằng các ngôn ngữ khác như C, java, python và các ngôn ngữ khác. Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích.