#include<iostream> using namespace std; int isMagic(int n) { int num[20] = { 0 }; int temp = 0, sum = 0, dp[20][20] = { 0 }; while (n) { num[temp] = n % 10; sum = sum + n % 10; n /= 10; temp++; } if (sum % 2 != 0) { return 0; } int length = temp; for (int i = 1; i <= length; i++) { for (int j = 0; j <= sum / 2; j++) { dp[i][j] = dp[i - 1][j]; if (j >= num[i]) { int t = dp[i][j - num[i]] + num[i]; if (t > dp[i][j]) dp[i][j] = t; } if (j == sum / 2) { if (dp[i][j] == sum / 2) { return 1; } } } } return 0; } int main() { long long start, end; int result = 0; cin >> start >> end; for (long long i = start; i <= end; i++) { if (isMagic(i)) { result++; } } cout << result << endl; system("pause"); return 0; }
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
02-14 11:10
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务