题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
#include <iostream>
#include <vector>
using namespace std;
bool dfs(vector<int> num, int sum_5, int sum_3) {
if (num.empty()) {
return sum_5 == sum_3;
}
int back = num.back();
num.pop_back();
return dfs(num, sum_5 + back, sum_3) || dfs(num, sum_5, sum_3 + back);
}
int main() {
int n;
cin >> n;
vector<int> num;
int sum_5 = 0, sum_3 = 0;
for (int i = 0; i < n; i++) {
int temp;
cin >> temp;
if (temp % 5 == 0) {
sum_5 += temp;
} else if (temp % 5 != 0 && temp % 3 == 0) {
sum_3 += temp;
} else {
num.push_back(temp);
}
}
bool b = dfs(num, sum_5, sum_3);
if (b) {
cout << "true" << endl;
} else {
cout << "false" << endl;
}
}
// 64 位输出请用 printf("%lld")
查看10道真题和解析