使用Python查找盒子中最多小球数的程序

使用Python查找盒子中最多小球数的程序

假设我们有一个小球工厂,我们有从l到r(包括l和r)编号的n个小球,并且有一个无限数量的盒子,编号为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的原因

为了解决这个问题,我们将按照以下步骤进行 –

  • dict:一个新的map

  • 对于范围在l到r之间的i,执行以下操作

    • total:0

    • 对于i的每个数字j,执行以下操作

      • total :=total+j
    • 如果dict中不存在total,则
      • dict[total]:=0
    • dict [total]:= dict [total] + 1

  • 返回dict中所有键的所有值的最大值

示例(Python)

让我们查看以下实现以获得更好的理解-

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程