# Sum of bitwise OR of all subarrays

Give 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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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.
1:- Traverse the from 0th position to n-1.
2:- 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 ` `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 ` ` `  `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

 ` `

Output:

```71
```

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.