给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和。
样例
样例 1:
输入 : n = 2
输出 : 6
说明 :
可能的子集为 {{1}, {2}, {1, 2}}.
子集的元素和为 1 + 2 + 1 + 2 = 6
样例 2:
输入 : n = 3
输出 : 24
说明 :
可能的子集为 {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
子集的和为:
1 + 2 + 3 + (1 + 2) + (1 + 3) + (2 + 3) + (1 + 2 + 3) = 24
思路:每一个元素出现2^n-1次
class Solution {
public:
/**
* @param n: the given number
* @return: Sum of elements in subsets
*/
int subSum(int n) {
// write your code here
return (1+n)*n/2*pow(2,n-1);
}
};