Given an array of positive integers, find the total sum after performing the bit wise OR operation on all the sub arrays of a given array.
Examples:
Input : 1 2 3 4 5 Output : 71 Input : 6 5 4 3 2 Output : 84
First initialize the two variable sum=0, sum1=0, variable sum will store the total sum and, with sum1 we will perform bitwise OR operation for each jth element, and add sum1 with sum.
- Traverse the from 0th position to n-1.
- For each ith variable we will perform bit wise OR operation on all the sub arrays to find the total sum.
Repeat step until the whole array is traverse.
C++
// C++ program to find sum of // bitwise ors of all subarrays. #include <iostream> using namespace std; int totalSum( int a[], int n) { int i, sum = 0, sum1 = 0, j; for (i = 0; i < n; i++) { sum1 = 0; // perform Bitwise OR operation // on all the subarray present // in array for (j = i; j < n; j++) { // OR operation sum1 = (sum1 | a[j]); // now add the sum after performing // the Bitwise OR operation sum = sum + sum1; } } return sum; } // Driver code int main() { int a[] = { 1, 2, 3, 4, 5 }; int n = sizeof (a) / sizeof (a[0]); cout << totalSum(a, n) << endl; return 0; } // This code is contributed // by Shivi_Aggarwal |
C
// C program to find sum of bitwise ors // of all subarrays. #include <stdio.h> int totalSum( int a[], int n) { int i, sum = 0, sum1 = 0, j; for (i = 0; i < n; i++) { sum1 = 0; // perform Bitwise OR operation // on all the subarray present in array for (j = i; j < n; j++) { // OR operation sum1 = (sum1 | a[j]); // now add the sum after performing the // Bitwise OR operation sum = sum + sum1; } } return sum; } // Driver code int main() { int a[] = { 1, 2, 3, 4, 5 }; int n = sizeof (a)/ sizeof (a[0]); printf ( "%d " , totalSum(a, n)); return 0; } |
Java
// Java program to find sum // of bitwise ors of all subarrays. import java.util.*; import java.lang.*; import java.io.*; class GFG { static int totalSum( int a[], int n) { int i, sum = 0 , sum1 = 0 , j; for (i = 0 ; i < n; i++) { sum1 = 0 ; // perform Bitwise OR operation // on all the subarray present // in array for (j = i; j < n; j++) { // OR operation sum1 = (sum1 | a[j]); // now add the sum after // performing the Bitwise // OR operation sum = sum + sum1; } } return sum; } // Driver code public static void main(String args[]) { int a[] = { 1 , 2 , 3 , 4 , 5 }; int n = a.length; System.out.println(totalSum(a,n)); } } // This code is contributed // by Subhadeep |
Python3
# Python3 program to find sum of # bitwise ors of all subarrays. def totalSum(a, n): sum = 0 ; for i in range (n): sum1 = 0 ; # perform Bitwise OR operation # on all the subarray present # in array for j in range (i, n): # OR operation sum1 = (sum1 | a[j]); # now add the sum after # performing the # Bitwise OR operation sum = sum + sum1; return sum ; # Driver code a = [ 1 , 2 , 3 , 4 , 5 ]; n = len (a); print (totalSum(a, n)); # This code is contributed by mits |
C#
// C# program to find sum // of bitwise ors of all // subarrays. using System; class GFG { static int totalSum( int [] a, int n) { int sum = 0; for ( int i = 0; i < n; i++) { int sum1 = 0; // perform Bitwise OR operation // on all the subarray present // in array for ( int j = i; j < n; j++) { // OR operation sum1 = (sum1 | a[j]); // now add the sum after // performing the Bitwise // OR operation sum = sum + sum1; } } return sum; } // Driver code static void Main() { int [] a = { 1, 2, 3, 4, 5 }; int n = a.Length; Console.WriteLine(totalSum(a,n)); } } // This code is contributed // by mits |
PHP
<?php // PHP program to find // sum of bitwise ors // of all subarrays. function totalSum( $a , $n ) { $sum = 0; for ( $i = 0; $i < $n ; $i ++) { $sum1 = 0; // perform Bitwise OR operation // on all the subarray present // in array for ( $j = $i ; $j < $n ; $j ++) { // OR operation $sum1 = ( $sum1 | $a [ $j ]); // now add the sum after // performing the // Bitwise OR operation $sum = $sum + $sum1 ; } } return $sum ; } // Driver code $a = array (1, 2, 3, 4, 5); $n = sizeof( $a ); echo totalSum( $a , $n ); // This code is contributed by mits ?> |
Javascript
<script> // Java program to find sum // of bitwise ors of all subarrays. function totalSum(a, n) { let i, sum = 0, sum1 = 0, j; for (i = 0; i < n; i++) { sum1 = 0; // perform Bitwise OR operation // on all the subarray present // in array for (j = i; j < n; j++) { // OR operation sum1 = (sum1 | a[j]); // now add the sum after // performing the Bitwise // OR operation sum = sum + sum1; } } return sum; } // Driver code let a = [ 1, 2, 3, 4, 5 ]; let n = a.length; document.write(totalSum(a,n)); // This code is contributed shivanisinghss2110 </script> |
71
Time Complexity: O(N*N)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!