题目描述
给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和。
输入输出格式
输入:集合中的元素(元素<=1000)
输出格式:和
输入输出样例
输入
2 3
输出
10
题目求解
题目推导:每个元素都有2^(n-1)被选中
题目注意:
- while(cin>>a),最后调试ctrl+z
- 公式sum* 2^(n-1)
AC代码如下:
using namespace std;
#include <iostream>
#include <cmath>
int main ()
{
int i=0,n=0,a;
long long sum=0;
while(cin>>a)
{
sum=sum+a;
n=n+1;
}
sum=sum*pow(2,n-1);
cout<<sum;
}
运行:最后输入流停止ctrl+z
while(cin>>a)这
如果输入流正常,就会继续循环获取键盘值,如果输入流错误,或者达到文件末尾(在windows下Ctrl+Z,在Linux下Ctrl+D),该循环就会终止。
参考:P2415 集合求和 题解