假设我们有一个球厂,其中有 n 个球,编号从 l 到 r(包括两者),并且有无数个从 1 编号到无穷大的盒子。因此,如果我们将每个球放入盒子中,其编号与球编号的数字之和相同。(例如,编号为 123 的球将放入编号为 1 + 2 + 3 = 6 的盒子中)。因此,如果我们有两个值 l 和 r,我们必须找到包含最多球的盒子中的球数。
因此,如果输入类似于 l = 15 r = 25,那么输出将为 2,因为
球号 15 将被放入 1+5 = 6
球号 16 将被放入 1+6 = 7
球号 17 将被放入 1+7 = 8
18号球将被放入1+8 = 9
球号 19 将放入 1+9 = 10
球号 20 将被放入 2+0 = 2
球号 21 将被放入 2+1 = 3
球号 22 将被放入 2+2 = 4
球号 23 将被放入 2+3 = 5
球号 24 将被放入 2+4 = 6
球号 25 将被放入 2+5 = 7
所以框 6 和 7 包含最大数量的球,这就是为什么答案是 2
让我们看看以下实现以获得更好的理解 -
def solve(l, r): dict={} for i in range(l, r+1): total=0 for j in str(i): total += int(j) if(total not in dict): dict[total] = 0 dict[total] += 1 return max([dict[i] for i in dict]) l = 15 r = 25 print(solve(l, r))
15, 25输出结果
1