# Sum of all subsets of a set formed by first n natural numbers

Given a number n, we need to find the sum of all the elements from all possible subsets of a set formed by first n natural numbers.

Examples :

```Input :  n = 2
Output : 6
Possible subsets are {{1}, {2},
{1, 2}}. Sum of elements in subsets
is 1 + 2 + 1 + 2 = 6

Input :  n = 3
Output : 24
Possible subsets are {{1}, {2}, {3},
{1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
Sum of subsets is :
1 + 2 + 3 + (1 + 2) + (1 + 3) +
(2 + 3) + (1 + 2 + 3)
```

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

A simple solution is to generate all subsets. For every subset, compute its sum and finally return overall sum.

An efficient solution is based on the fact that every number from 1 to n appears exactly 2(n-1) times. So our required sum is (1 + 2 + 3 + ..+ n) * 2(n-1). The sum can be written as (n * (n + 1)/2) * 2(n-1)

## C++

 `// CPP program to find sum of all subsets ` `// of a set. ` `#include ` `using` `namespace` `std; ` ` `  `unsigned ``long` `long` `findSumSubsets(``int` `n) ` `{ ` `    ``// sum of subsets is (n * (n + 1) / 2) * ` `    ``// pow(2, n-1) ` `    ``return` `(n * (n + 1) / 2) * (1 << (n - 1)); ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `n = 3; ` `    ``cout << findSumSubsets(n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find sum of all subsets ` `// of a set. ` ` `  `class` `GFG { ` `    ``static` `long` `findSumSubsets(``int` `n) ` `    ``{ ` `        ``// sum of subsets is (n * (n + 1) / 2) * ` `        ``// pow(2, n-1) ` `        ``return` `(n * (n + ``1``) / ``2``) * (``1` `<< (n - ``1``)); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``3``; ` `        ``System.out.print(findSumSubsets(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by Anant Agarwal. `

## Python3

 `# Python program to find ` `# sum of all subsets ` `# of a set. ` ` `  `def` `findSumSubsets( n): ` ` `  `    ``# sum of subsets  ` `    ``# is (n * (n + 1) / 2) * ` `    ``# pow(2, n-1) ` `    ``return` `(n ``*` `(n ``+` `1``) ``/` `2``) ``*` `(``1` `<< (n ``-` `1``)) ` `     `  `# Driver code      ` `n ``=` `3` `print``(findSumSubsets(n)) ` ` `  `# This code is contributed  ` `# by sunnysingh. `

## C#

 `// C# program to find sum of all subsets ` `// of a set. ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``static` `long` `findSumSubsets(``int` `n) ` `    ``{ ` ` `  `        ``// sum of subsets is (n * (n + 1) / 2) * ` `        ``// pow(2, n-1) ` `        ``return` `(n * (n + 1) / 2) * (1 << (n - 1)); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 3; ` ` `  `        ``Console.WriteLine(findSumSubsets(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

```24
```

This article is contributed by Raj Kumar. 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 : vt_m, jit_t

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.