Computer >> Máy Tính >  >> Lập trình >> Python

Tạo ba số 0 trong Python

Giả sử chúng ta có ba số. Nhiệm vụ là đếm tổng số bước tối ưu để biến tất cả những con số này thành '0'.

Ví dụ

Đầu vào-1:

a = 4
b = 4
c = 6

Đầu ra:

7

Giải thích:

Tổng số bước tối ưu để tạo ra tất cả các số '0' là,

(4, 4, 6)

Xóa '1' khỏi số thứ nhất và thứ hai =(3, 3, 6)

Xóa '1' khỏi số thứ nhất và thứ 3 =(2, 3, 5)

Xóa '1' khỏi số thứ nhất và thứ 3 =(1, 3, 4)

Xóa '1' khỏi số thứ nhất và thứ 3 =(0, 3, 3)

Xóa '1' khỏi số thứ 2 và thứ 3 =(0, 2, 2)

Xóa '1' khỏi số thứ 2 và thứ 3 =(0, 1, 1)

Xóa '1' khỏi số thứ 2 và thứ 3 =(0, 0, 0)

Do đó, tổng số bước để tạo tất cả các số 0 là '7'

Phương pháp tiếp cận để giải quyết vấn đề này

Để giải quyết vấn đề cụ thể này, chúng ta sẽ loại bỏ '1' khỏi hai số bất kỳ sao cho tổng của hai số này lớn hơn số cuối cùng. Để tìm các bước tối thiểu để biến nó thành 0, chúng tôi sẽ tính số bước tối thiểu.

  • Lấy ba số làm đầu vào.
  • Sắp xếp các số theo thứ tự tăng dần bằng cách sử dụng sắp xếp
  • Kiểm tra xem tổng của hai số có nhỏ hơn số thứ ba hay không, sau đó trả về tổng.
  • Vì mỗi lần, chúng tôi xóa "1" khỏi hai số bất kỳ, nên sẽ mất (n1 + n2 + n3) / 2 bước để tạo tất cả các số là "0".

Ví dụ

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))      

Chạy đoạn mã trên sẽ tạo ra kết quả là,

Đầu ra

7

Đối với các đầu vào cho trước a =4, b =4 và c =6, sẽ mất bảy bước để tạo tất cả các số là '0'. Do đó, chương trình trả về 7 làm đầu ra.