给你N个数,一共有2^n种可能,从1枚举到1 << n,再判断就好了
#include<iostream>
using namespace std;
int main(){
int a[100];
int n, k, s;
cin >> n >> k;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
int i;
for(i = 1; i < 1 << n; i++){
int t = 1, s = i, p = 0;
while(s){
if(s % 2) p += a[t];
s /= 2;
t++;
}
if(p == k) {
cout << "YES" << endl;
break;
}
}
if(i == 1 << n) cout << "NO" << endl;
return 0;
}