展开
题目描述
给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和。
输入格式
集合中的元素(元素<=1000)
输入输出样例
输入 #1复制
2 3
输出 #1复制
10
说明/提示
子集为:
[] [2] [3] [2 3] 2+3+2+3=10
保证结果在10^18以内。
找规律
这是一个简单题,但是值得一说
第一种(c++):
c++在输入个数未知的情况下,想要输入数组
while(cin>>a[i++]); //这样写,提交可以,但是自己没法测试答案
有一个需要注意的地方是
pow(n,m)的返回值是浮点数double类型,所以在输出之前需要先计算再输出
#include#include #include #include #include #include #include #include using namespace std; int a[100010]; int main() { std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); long long i=1,sum=0; while(cin>>a[i]) { sum+=a[i]; i++; } sum*=pow(2,i-2); cout<
还是要普及一下python代码
import math a = list(map(int,input("").split())) s=sum(a) x=len(a)-1 print(s*(2**x))



