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