在Python中将三个数字设为零

让我们假设我们有三个数字。任务是计算使所有这些数字都为“ 0”的最佳步骤总数。

例如

输入1:

a = 4
b = 4
c = 6

输出:

7

解释:

使所有数字均为“ 0”的最佳步骤总数为:

(4、4、6)

从第一个和第二个数字中删除'1'=(3,3,6)

从第1和第3个数字中删除'1'=(2,3,5)

从第1和第3个数字中删除'1'=(1、3、4)

从第1和第3个数字中删除'1'=(0,3,3)

从第二个和第三个数字中删除'1'=(0,2,2)

从第二个和第三个数字中删除'1'=(0,1,1)

从第二个和第三个数字中删除'1'=(0,0,0)

因此,使所有数字均为零的步骤总数为“ 7”

解决这个问题的方法

为了解决此特定问题,我们将从任意两个数字中删除“ 1”,以使这两个数字之和大于最后一个数字。为了找到使它为零的最小步长,我们将计算最小步长。

  • 以三个数字为输入。

  • 使用排序对数字进行升序排序

  • 检查两个数字的和是否小于第三个数字,然后返回和。

  • 由于每次我们都从任意两个数字中删除“ 1”,因此需要花费(n1 + n2 + n3)/ 2步才能使所有数字均为“ 0”。

示例

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作为输出。