京东笔试第一题90,第二题AC代码分享
第一题暴力,太丑了而且还不想改。。就不放了
第二题之前做过类似的,有印象。上代码
#include <iostream>
#include <vector>
using namespace std;
bool isEqualed(vector<int> &nums, int len) {
int sum = 0;
for (int i = 0; i < len; i++)
sum += nums[i];
if (sum % 2 == 1)
return false;
sum /= 2;
bool dp[100];
for (int i = 0; i <= sum; i++)
dp[i] = false;
dp[0] = true;
for (int i = 0; i < len; i++) {
for (int j = sum; j >= nums[i]; j--) {
dp[j] = dp[j] | dp[j - nums[i]];
}
}
return dp[sum];
}
int main() {
int l, r, count = 0;
cin >> l >> r;
vector<int> a;
for (int i = l; i <= r; i++) {
int n = i;
a.clear();
while (n != 0) {
a.push_back(n % 10);
n = n / 10;
}
if (isEqualed(a, a.size())) {
count++;
}
}
cout << count << endl;
return 0;
}