洛谷 P2415 集合求和
题目描述
给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和。
输入格式
集合中的元素(元素<=1000)
输出格式
和
思路分析:
一个元素:
1
两个元素:
1
2
1 2
三个元素:
1
2
3
1 2
1 3
2 3
1 2 3
四个元素:
1
2
3
4
1 2
1 3
1 4
2 3
2 4
3 4
1 2 3
1 2 4
1 3 4
2 3 4
1 2 3 4
我们不难发现其中的规律:在n确定的情况下每个元素出现的次数相同,而且出现的次数呈1 2 4 8增长
#includeusing namespace std;int main() {int n, m;int i = 0;long long ans = 0;while (cin >> n) {i++; ans += n;} m = pow(2, i - 1);ans = ans * m;cout << ans << endl;;}