题解
【入门】数组元素之和
1 条题解
-
0
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[25]; for (int i = 0; i < n; i++) { cin >> a[i]; } int m; cin >> m; // 枚举所有子集:2^n 种情况 bool found = false; for (int mask = 1; mask < (1 << n); mask++) { // mask=0 表示空集,跳过 int sum = 0; for (int i = 0; i < n; i++) { if (mask & (1 << i)) { // 第i位被选中 sum += a[i]; } } if (sum == m) { found = true; break; } } if (found) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; }
- 1