Related Articles
Sum of values of all possible non-empty subsets of the given array
• Last Updated : 10 Mar, 2021

Given an array arr[] of N integers, the task is to find the sum of values of all possible non-empty subsets of array the given array.
Examples:

Input: arr[] = {2, 3}
Output: 10
All non-empty subsets are {2}, {3} and {2, 3}
Total sum = 2 + 3 + 2 + 3 = 10
Input: arr[] = {2, 1, 5, 6}
Output: 112

Approach: It can be observed that when all the elements are added from all the possible subsets then each element of the original array appears in 2(N – 1) times. Which means contribution of any element arr[i] in the final answer will be arr[i] * 2(N – 1). So, the required answer will be (arr[0] + arr[1] + arr[2] + … + arr[N – 1]) * 2(N – 1).
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the required sum``int` `sum(``int` `arr[], ``int` `n)``{` `    ``// Find the sum of the array elements``    ``int` `sum = 0;``    ``for` `(``int` `i = 0; i < n; i++) {``        ``sum += arr[i];``    ``}` `    ``// Every element appears 2^(n-1) times``    ``sum = sum * ``pow``(2, n - 1);``    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 2, 1, 5, 6 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(``int``);` `    ``cout << sum(arr, n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{` `    ``// Function to return the required sum``    ``static` `int` `sum(``int` `arr[], ``int` `n)``    ``{``    ` `        ``// Find the sum of the array elements``        ``int` `sum = ``0``;``        ``for` `(``int` `i = ``0``; i < n; i++)``        ``{``            ``sum += arr[i];``        ``}``    ` `        ``// Every element appears 2^(n-1) times``        ``sum = sum * (``int``)Math.pow(``2``, n - ``1``);``        ``return` `sum;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `arr[] = { ``2``, ``1``, ``5``, ``6` `};``        ``int` `n = arr.length;``        ``System.out.println(sum(arr, n));``    ``}``}` `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 implementation of the approach` `# Function to return the required sum``def` `sum``( arr, n):` `    ``# Find the sum of the array elements``    ``sum` `=` `0``    ``for` `i ``in` `arr :``        ``sum` `+``=` `i``    ` `    ``# Every element appears 2^(n-1) times``    ``sum` `=` `sum` `*` `pow``(``2``, n ``-` `1``)``    ``return` `sum` `# Driver code``arr ``=` `[ ``2``, ``1``, ``5``, ``6` `]``n ``=` `len``(arr)` `print``(``sum``(arr, n))` `# This code is contributed by Arnab Kundu`

## C#

 `// C# implementation of the approach``using` `System;``class` `GFG``{` `    ``// Function to return the required sum``    ``static` `int` `sum(``int``[] arr, ``int` `n)``    ``{``    ` `        ``// Find the sum of the array elements``        ``int` `sum = 0;``        ``for` `(``int` `i = 0; i < n; i++)``        ``{``            ``sum += arr[i];``        ``}``    ` `        ``// Every element appears 2^(n-1) times``        ``sum = sum * (``int``)Math.Pow(2, n - 1);``        ``return` `sum;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int``[] arr = { 2, 1, 5, 6 };``        ``int` `n = arr.Length;``        ``Console.WriteLine(sum(arr, n));``    ``}``}` `// This code is contributed by CodeMech`

## Javascript

 ``
Output:
`112`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up