京东神奇数为嘛你们暴力过了,我暴力就过不了呢?
#include <iostream>
#include <vector>
using namespace std;
typedef uint32_t uint;
bool isMiracle(uint num) {
vector<int> arr1;
uint sum = 0;
while(num) {
sum += (num % 10);
arr1.push_back(num%10);
num /= 10;
}
if(sum & 1) return false;
sum = sum >> 1;
vector<bool> dp(sum+1, 0);
dp[0] = true;
for(auto n : arr1)
for(int i = sum; i>=n; i--)
dp[i] = dp[i-n];
return dp[sum];
}
int main() {
int l, r;
while(cin >> l >> r) {
int res = 0;
for(int i = l; i <= r; i++) {
if(isMiracle(i)) res++;
}
cout << res << endl;
}
return 0;
}
求帮忙查看一下为什么?
智元机器人成长空间 243人发布