首页 > 试题广场 >

神奇数

[编程题]神奇数
  • 热度指数:3303 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够将这个数的数字分成两组,分别是 {2,2} 以及 {4} ,而且这两组数的和都是 4 .东东现在需要统计给定区间中有多少个神奇数,即给定区间 [l, r] ,统计这个区间中有多少个神奇数,请你来帮助他。

数据范围:

输入描述:
输入包括一行,一行中两个整数l和r(1 ≤ l, r ≤ 10^9, 0 ≤ r - l ≤ 10^6),以空格分割


输出描述:
输出一个整数,即区间内的神奇数个数
示例1

输入

1 50

输出

4
示例2

输入

11 11

输出

1
头像 laglangyue
发表于 2020-07-01 23:14:49
动态规划判断是否神奇(抄讨论区C++大佬的) import java.util.Arrays; import java.util.Scanner; public class Main { private static boolean judge(int a){ int[] 展开全文
头像 重生之我要当分子
发表于 2025-01-01 02:34:37
解题思路 这是一个数字分组问题,使用动态规划来解决。 关键点: 提取数字的非零位并计算总和 如果总和为奇数,直接返回false 使用01背包思想,判断是否能找到一组数字和为总和的一半 算法步骤: 提取数字的各个非零位到数组中 计算所有位数字的和,判断是否为偶数 使用动态规划判断是否存在一组数字 展开全文
头像 i+t=IT
发表于 2021-07-03 16:29:26
思路:例如44321这个数,在数组a[]中有1 2 3 4 4。如果这个数是神奇数, 那么数组中的所有数相加后得sum,sum%2一定为0。然后我们要确定44321是否 可以分为符合题意的两组,这里用到了递归。 const readline = require 展开全文