Sum of all subsequences of an array

02 Feb, 2022
Given an array of n integers. Find the sum of all possible subsequences of an array. 
Examples : 
Input : arr[] = { 1, 2 }
Output : 6
All possible subsequences are {}, {1}, {2} 
and { 1, 2 }

Input : arr[] = { 1, 2, 3 }
Output : 24
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 subsequences are {}, {1}, {2}, {3}, {1, 2}, 
                     {1, 3}, {2, 3}, {1, 2, 3}

So sum of subsequences are 0 + 1 + 2 + 3 + 3 + 
                             4 + 5 + 6 = 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 subsequences by adding all elements of array multiplied by 2(n-1) where n is number of elements in array.
C++
Java
Python
C#
PHP
Javascript
// CPP program to find sum of// all subarrays of array#include <bits/stdc++.h>using namespace std;  // To find sum of all subsequencesint 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[0]);    cout << findSum(arr, n);    return 0;}
// Java program to find sum of// all subarrays of array  public class Main {    // To find sum of all subsequences    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 program to find sum of# all subarrays of array  # To find sum of all subsequencesdef 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# program to find sum of // all subarrays of array using System;  class GFG{  // To find sum of all subsequencesstatic 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 Codestatic public void Main (){    int []arr = { 1, 2 };     int n = arr.Length;     Console.WriteLine(findSum(arr, n)); } }   // This code is contributed by ajit
<?php// PHP program to find sum of// all subarrays of array  // To find sum of all subsequences  function findSum($arr, $n){    // Sum all array elements    $sum = 0;    for ($i = 0; $i < $n; $i++)        $sum += $arr[$i];      // Result is sum * 2^(n-1)    return $sum * (1 << ($n - 1));}  // Driver Code$arr = array( 1, 2 );$n = sizeof($arr);  echo findSum($arr, $n);  // This code is contributed by ajit?>
<script>  // Javascript program to find sum of // all subarrays of array   // To find sum of all subsequencesfunction findSum(arr, n) {           // Sum all array elements     let sum = 0;     for(let i = 0; i < n; i++)         sum += arr[i];       // Result is sum * 2^(n-1)     return sum * (1 << (n - 1)); }   // Driver codelet arr = [ 1, 2 ]; let n = arr.length;   document.write(findSum(arr, n));   // This code is contributed by rameshtravel07  </script>
Output : 
6
This article is contributed by nuclode. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
jit_t
rameshtravel07
darshil23sep
sachinjourneyoflife
subsequence
Arrays
Arrays
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.