题目如下
思路如下:
本题重在寻找寻找数学规律,如果得出一集合所有子集之和等于该集合中各个元素之和(sum)乘每个元素在子集中出现的次数和,即所有子集之和=sum*pow(2,n-1),就很容易得出答案
注:以上图文借用于题解区大佬,如有侵权,可联系修改
最终代码如下:
#include<stdio.h>
#include<math.h>
int main(){
int a;
int count=0;
long long int sum=0;
while(scanf("%d",&a)!=EOF){
sum+=a;
count++;
}
sum=sum*pow(2,count-1);
printf("%lld",sum);
return 0;
}
扩展:
EOF 是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏,这个宏是一个表示已经到达文件结束的负整数。具体使用方法如下:
windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认。
linux系统下,在输入回车换行后的空行位置,按 ctrl+d。