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 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告