# Sum of all subsequences of an array

Given an array of n integers. Find the sum of all possible subarrays.

Examples :

```Input : arr[] = { 1, 2 }
Output : 6
All possible subarrays are {}, {1}, {2}
and { 1, 2 }

Input : arr[] = { 1, 2, 3 }
Output : 24
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

We have already discussed two different solutions in below post.
Sum of all Subarrays | Set 1

In this post a different solution is discussed. Let us take a closer look at the problem and try to find a pattern

```Let a[] = { 1, 2, 3 }

All subarrays are {}, {1}, {2}, {3}, {1, 2},
{1, 3}, {2, 3}, {1, 2, 3}

So sum of subarrays are 0 + 1 + 2 + 3 + 3 +
4 + 5 + 8 = 24

Here we can observe that in sum every elements
occurs 4 times. Or in general every element
will occur 2^(n-1) times. And we can also
observe that sum of array elements is 6. So
final result will be 6*4.
```

In general we can find sum of all subarrays by adding all elements of array multiplied by 2(n-1) where n is number of elements in array.

## C++

 `// CPP program to find sum of ` `// all subarrays of array ` `#include ` `using` `namespace` `std; ` ` `  `// To find sum of all subarrya ` `int` `findSum(``int` `arr[], ``int` `n) ` `{ ` `    ``// Sum all array elements ` `    ``int` `sum = 0; ` `    ``for` `(``int` `i = 0; i < n; i++) ` `        ``sum += arr[i]; ` ` `  `    ``// Result is sum * 2^(n-1) ` `    ``return` `sum * (1 << (n - 1)); ` `} ` ` `  `// Driver program to test findSum() ` `int` `main() ` `{ ` `    ``int` `arr[] = { 1, 2 }; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr); ` `    ``cout << findSum(arr, n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find sum of ` `// all subarrays of array ` ` `  `public` `class` `Main { ` `    ``// To find sum of all subarrya ` `    ``static` `int` `findSum(``int` `arr[], ``int` `n) ` `    ``{ ` `        ``// Sum all array elements ` `        ``int` `sum = ``0``; ` `        ``for` `(``int` `i = ``0``; i < n; i++) ` `            ``sum += arr[i]; ` ` `  `        ``// Result is sum * 2^(n-1) ` `        ``return` `sum * (``1` `<< (n - ``1``)); ` `    ``} ` ` `  `    ``// Driver program to test findSum() ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `arr[] = { ``1``, ``2` `}; ` `        ``int` `n = arr.length; ` `        ``System.out.print(findSum(arr, n)); ` `    ``} ` `} `

## Python

 `# Python program to find sum of ` `# all subarrays of array ` ` `  `# To find sum of all subarrya ` `def` `findSum(arr, n): ` `     `  `    ``# Sum all array elements ` `    ``sum` `=` `0` `    ``for` `i ``in` `range``(n): ` `        ``sum` `+``=` `arr[i] ` `  `  `    ``# Result is sum * 2^(n-1) ` `    ``return` `sum` `*` `(``1` `<< (n ``-` `1``)) ` `  `  `# Driver program to test findSum() ` `arr ``=` `[``1``, ``2``] ` `n ``=` `len``(arr) ` `print` `findSum(arr, n) ` ` `  `# This code is submitted by Sachin Bisht `

## C#

 `// C# program to find sum of  ` `// all subarrays of array  ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `// To find sum of all subarrya  ` `static` `int` `findSum(``int` `[]arr, ``int` `n)  ` `{  ` `    ``// Sum all array elements  ` `    ``int` `sum = 0;  ` `    ``for` `(``int` `i = 0; i < n; i++)  ` `        ``sum += arr[i];  ` ` `  `    ``// Result is sum * 2^(n-1)  ` `    ``return` `sum * (1 << (n - 1));  ` `}  ` ` `  `// Driver Code ` `static` `public` `void` `Main () ` `{ ` `    ``int` `[]arr = { 1, 2 };  ` `    ``int` `n = arr.Length;  ` `    ``Console.WriteLine(findSum(arr, n));  ` `}  ` `}  ` ` `  `// This code is contributed by ajit `

## PHP

 ` `

Output :

```6
```

This article is contributed by nuclode. 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.

My Personal Notes arrow_drop_up

Improved By : jit_t

Article Tags :
Practice Tags :

1

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