Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Làm 3 số thành 0 trong Python (Make three numbers Zero)

Cho 3 số a, b, c. Đếm số bước tối thiểu để đưa cả 3 về 0. Mỗi bước trừ 1 từ 2 số bất kỳ.

Ví dụ

Input: a=4, b=4, c=6

Output: 7

Giải thích: Các bước: (4,4,6)->(3,3,6)->(2,3,5)->(1,3,4)->(0,3,3)->(0,2,2)->(0,1,1)->(0,0,0). Tổng 7 bước.

Cách giải

Sắp xếp 3 số tăng dần. Nếu tổng 2 số nhỏ < số lớn -> trả về tổng 2 số nhỏ. Ngược lại: (a+b+c)//2 bước (vì mỗi bước trừ 2 đơn vị tổng).

Ví dụ

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

a, b, c = 4, 4, 6
print(maxScore(a, b, c))

Kết quả

7

Với a=4,b=4,c=6 -> 7 bước đưa về 0.