使用 Python 查詢盒子中球的最大數量的程式


假設我們有一個球工廠,其中我們有 n 個球,編號從 l 到 r(包含 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

為了解決這個問題,我們將遵循以下步驟:

  • dict:= 一個新的對映

  • 對於範圍從 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

更新於: 2021年5月18日

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告