Python 中將三個數字變為零


假設我們有三個數字。任務是計算將所有這些數字都變為“0”所需的最佳步驟總數。

例如

輸入-1

a = 4
b = 4
c = 6

輸出

7

解釋

將所有數字都變為“0”所需的最佳步驟總數為:

(4, 4, 6)

從第一個和第二個數字中減去“1” = (3, 3, 6)

從第一個和第三個數字中減去“1” = (2, 3, 5)

從第一個和第三個數字中減去“1” = (1 ,3, 4)

從第一個和第三個數字中減去“1” = (0 ,3 ,3)

從第二個和第三個數字中減去“1” = (0 ,2, 2)

從第二個和第三個數字中減去“1” = (0, 1, 1)

從第二個和第三個數字中減去“1” = (0, 0, 0)

因此,將所有數字變為零的總步驟數為“7”。

解決此問題的方法

為了解決這個問題,我們將從任意兩個數字中減去“1”,使得這兩個數字之和大於最後一個數字。為了找到將其變為零的最小步驟數,我們將計算最小步驟數。

  • 將三個數字作為輸入。
  • 使用**sort**將數字按升序排序。
  • 檢查兩個數字之和是否小於第三個數字,如果是,則返回該和。
  • 由於每次我們都從任意兩個數字中減去“1”,因此將所有數字變為“0”需要 (n1+n2+n3)/2 步。

示例

即時演示

def maxScore(a: int, b: int, c: int):
   a, b, c = sorted((a, b, c))
   if a + b < c: return a + b
   return (a + b + c)//2
a=4
b=4
c=6
print(maxScore(a,b,c))      

執行以上程式碼將生成以下輸出:

輸出

7

對於給定的輸入 a=4、b=4 和 c=6,將所有數字變為“0”需要七步。因此,程式返回 7 作為輸出。

更新於: 2021年2月23日

250 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.