领扣LintCode算法问题答案-730. 所有子集的和
730. 所有子集的和
给一整数 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
题解
public class Solution {
/**
* @param n: the given number
* @return: Sum of elements in subsets
*/
public int subSum(int n) {
// write your code here
int times = (int) Math.pow(2, n - 1);
int ret = 0;
while (n > 0) {
ret += n * times;
n--;
}
return ret;
}
}
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。