Given an array of integers and a number K. The task is to find the XOR of only those elements of the array whose total set bits are equal to K.
Examples:
Input : arr[] = {1, 22, 3, 10}, K=1
Output : 1
Elements with set bits equal to 1 is 1.
So, XOR is also 1.
Input : arr[] = {3, 4, 10, 5, 8}, K=2
Output : 12
Approach:
- Initialize an empty vector.
- Traverse the array from left to right and check the set bits of each element.
- Use, C++ inbuilt function __builtin_popcount() to count setbits.
- Push the elements with K setbits into the vector.
- Finally find XOR of all the elements of the vector.
Below is the implementation of the above approach:
C++
// C++ program to find Xor// of all elements with set bits// equal to K#include <bits/stdc++.h>using namespace std;// Function to find Xor// of desired elementsint xorGivenSetBits(int arr[], int n, int k){ // Initialize vector vector<int> v; for (int i = 0; i < n; i++) { if (__builtin_popcount(arr[i]) == k) { // push required elements v.push_back(arr[i]); } } // Initialize result with first element of vector int result = v[0]; for (int i = 1; i < v.size(); i++) result = result ^ v[i]; return result;}// Driver codeint main(){ int arr[] = { 2, 13, 1, 19, 7 }; int n = sizeof(arr) / sizeof(arr[0]); int k = 3; cout << xorGivenSetBits(arr, n, k); return 0;} |
Java
// Java program to find Xor// of all elements with set bits// equal to Kimport java.util.*;class GFG{ // Function to find Xor // of desired elements static int xorGivenSetBits(int arr[], int n, int k) { // Initialize vector Vector<Integer> v = new Vector<>(); for (int i = 0; i < n; i++) { if (Integer.bitCount(arr[i]) == k) { // push required elements v.add(arr[i]); } } // Initialize result with first element of vector int result = v.get(0); for (int i = 1; i < v.size(); i++) { result = result ^ v.get(i); } return result; } // Driver code public static void main(String[] args) { int arr[] = {2, 13, 1, 19, 7}; int n = arr.length; int k = 3; System.out.println(xorGivenSetBits(arr, n, k)); }}// This code contributed by Rajput-Ji |
Python3
# Python 3 program to find Xor of all # elements with set bits equal to K# Function to find Xor of desired elementsdef xorGivenSetBits(arr, n, k): # Initialize vector v = [] for i in range(0, n, 1): if (bin(arr[i]).count('1') == k): # push required elements v.append(arr[i]) # Initialize result with first # element of vector result = v[0] for i in range(1, len(v), 1): result = result ^ v[i] return result# Driver codeif __name__ == '__main__': arr = [2, 13, 1, 19, 7] n = len(arr) k = 3 print(xorGivenSetBits(arr, n, k))# This code is contributed by# Surendra_Gangwar |
C#
// C# program to find Xor// of all elements with set bits// equal to Kusing System;using System.Collections;using System.Linq;class GFG{ // Function to find Xor// of desired elementsstatic int xorGivenSetBits(int []arr, int n, int k){ // Initialize vector ArrayList v=new ArrayList(); for (int i = 0; i < n; i++) { if (Convert.ToString(arr[i], 2).Count(c => c == '1') == k) { // push required elements v.Add(arr[i]); } } // Initialize result with first element of vector int result = (int)v[0]; for (int i = 1; i < v.Count; i++) result = result ^ (int)v[i]; return result;}// Driver codestatic void Main(){ int []arr = { 2, 13, 1, 19, 7 }; int n = arr.Length; int k = 3; Console.WriteLine(xorGivenSetBits(arr, n, k));}}// This code is contributed by mits |
Javascript
<script>// Javascript program to find Xor// of all elements with set bits// equal to K// Function to find Xor// of desired elementsfunction xorGivenSetBits(arr, n, k){ // Initialize vector let v = []; for (let i = 0; i < n; i++) { if (bitcount(arr[i]) == k) { // push required elements v.push(arr[i]); } } // Initialize result with first // element of vector let result = v[0]; for (let i = 1; i < v.length; i++) result = result ^ v[i]; return result;}function bitcount(n){ var count = 0; while (n) { count += n & 1; n >>= 1; } return count;}// Driver code let arr = [ 2, 13, 1, 19, 7 ]; let n = arr.length; let k = 3; document.write(xorGivenSetBits(arr, n, k));</script> |
25
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] There you will find 56698 additional Information to that Topic: geeksforgeeks.org/xor-of-all-elements-of-array-with-set-bits-equal-to-k/ […]