在一个长度为 n (n < 60) 的整数序列中,选中不限定数量个元素,加起来刚好等于 k,计算这种组合有多少种。
输入格式输入一个整数n和k, n为元素数量, k为所求和,接着输入n个元素
输出格式输出组合得到k的结果数量
样例输入样例
4 2
2 3 -1 1
输出样例
3
#include#include using namespace std; int n,k,num=0,a[50]; int main() { cin >> n >> k; for(int i=1;i<=n;i++) cin >> a[i]; for(int i=0;i<=(1< int tmp=i,x=0,sum=0; while(tmp) { x++; if(tmp%2==1) sum+=a[x]; tmp/=2; } if(sum==k) num++; } cout << num; return 0; }