Given an array arr[], the task is to calculate the sum of the elements from the given array which has even parity i.e. the number of set bits is even using bitwise operator.
Examples:
Input: arr[] = {2, 4, 3, 5, 9}
Output: 17
Only 3(0011), 5(0101) and 9(1001) have even parity
So 3 + 5 + 9 = 17Input: arr[] = {1, 5, 4, 16, 10}
Output: 15
Approach: Initialize a variable sum = 0 and traverse the array from 0 to n – 1 while counting the number of set bits in arr[i] using Brian Kernighan’s Algorithm. If the count is even then update sum = sum + arr[i]. Print the sum in the end.
Below is the implementation of the above approach:
C++
// C++ program to find the sum of the elements // from an array which have even parity #include <bits/stdc++.h> using namespace std; // Function that returns true if x has even parity bool checkEvenParity( int x) { // We basically count set bits int parity = 0; while (x != 0) { x = x & (x - 1); parity++; } if (parity % 2 == 0) return true ; else return false ; } // Function to return the sum of the elements // from an array which have even parity long sumlist( int a[], int n) { long sum = 0; for ( int i = 0; i < n; i++) { // If a[i] has even parity if (checkEvenParity(a[i])) sum += a[i]; } return sum; } // Driver code int main() { int arr[] = { 2, 4, 3, 5, 9 }; int n = sizeof (arr) / sizeof (arr[0]); cout << sumlist(arr, n); return 0; } |
Java
// Java program to find the sum of the elements // from an array which have even parity import java.io.*; class GFG { // Function that returns true if x has even parity static boolean checkEvenParity( int x) { // We basically count set bits int parity = 0 ; while (x != 0 ) { x = x & (x - 1 ); parity++; } if (parity % 2 == 0 ) return true ; else return false ; } // Function to return the sum of the elements // from an array which have even parity static long sumlist( int a[], int n) { long sum = 0 ; for ( int i = 0 ; i < n; i++) { // If a[i] has even parity if (checkEvenParity(a[i])) sum += a[i]; } return sum; } // Driver code public static void main (String[] args) { int arr[] = { 2 , 4 , 3 , 5 , 9 }; int n =arr.length; System.out.println(sumlist(arr, n)); } } // This code is contributed by inder_verma.. |
Python3
# Python3 program to find the sum of the elements # from an array which have even parity # Function that returns true if x # has even parity def checkEvenParity(x): # We basically count set bits parity = 0 while (x ! = 0 ): x = x & (x - 1 ) parity + = 1 if (parity % 2 = = 0 ): return True else : return False # Function to return the sum of the elements # from an array which have even parity def sumlist(a, n): sum = 0 for i in range (n): # If a[i] has even parity if (checkEvenParity(a[i])): sum + = a[i] return sum # Driver code if __name__ = = '__main__' : arr = [ 2 , 4 , 3 , 5 , 9 ] n = len (arr) print (sumlist(arr, n)) # This code is contributed by 29AjayKumar. |
C#
// C# program to find the sum of the elements // from an array which have even parity using System ; class GFG { // Function that returns true if x has even parity static bool checkEvenParity( int x) { // We basically count set bits int parity = 0; while (x != 0) { x = x & (x - 1); parity++; } if (parity % 2 == 0) return true ; else return false ; } // Function to return the sum of the elements // from an array which have even parity static long sumlist( int []a, int n) { long sum = 0; for ( int i = 0; i < n; i++) { // If a[i] has even parity if (checkEvenParity(a[i])) sum += a[i]; } return sum; } // Driver code public static void Main () { int []arr = { 2, 4, 3, 5, 9 }; int n =arr.Length; Console.WriteLine(sumlist(arr, n)); } // This code is contributed by Ryuga } |
PHP
<?php // PHP program to find the sum of the // elements from an array which have // even parity // Function that returns true // if x has even parity function checkEvenParity( $x ) { // We basically count set bits $parity = 0; while ( $x != 0) { $x = ( $x & ( $x - 1)); $parity ++; } if ( $parity % 2 == 0) return true; else return false; } // Function to return the sum of the elements // from an array which have even parity function sumlist( $a , $n ) { $sum = 0; for ( $i = 0; $i < $n ; $i ++) { // If a[i] has even parity if (checkEvenParity( $a [ $i ])) $sum += $a [ $i ]; } return $sum ; } // Driver code $arr = array ( 2, 4, 3, 5, 9 ); $n = sizeof( $arr ); echo sumlist( $arr , $n ); // This code is contributed by ajit. ?> |
Javascript
<script> // Javascript program to find the sum of the elements // from an array which have even parity // Function that returns true if x has even parity function checkEvenParity(x) { // We basically count set bits let parity = 0; while (x != 0) { x = x & (x - 1); parity++; } if (parity % 2 == 0) return true ; else return false ; } // Function to return the sum of the elements // from an array which have even parity function sumlist(a, n) { let sum = 0; for (let i = 0; i < n; i++) { // If a[i] has even parity if (checkEvenParity(a[i])) sum += a[i]; } return sum; } // Driver code let arr = [ 2, 4, 3, 5, 9 ]; let n = arr.length; document.write(sumlist(arr, n)); // This code is contributed by unknown2108 </script> |
17
Time complexity: O(nlogn)
Auxiliary space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!