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 sumint 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 codeint main(){    int arr[] = { 2, 1, 5, 6 };    int n = sizeof(arr) / sizeof(int);     cout << sum(arr, n);     return 0;}

## Java

 // Java implementation of the approachclass 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 sumdef 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 codearr = [ 2, 1, 5, 6 ]n = len(arr) print(sum(arr, n)) # This code is contributed by Arnab Kundu

## C#

 // C# implementation of the approachusing 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