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

Chương trình tìm các phần tử tối thiểu để thêm vào để tạo thành một tổng cho trước trong Python

Giả sử chúng ta có một mảng gọi là nums và hai giá trị giới hạn và mục tiêu. Mảng này đặc biệt vì | nums [i] | <=giới hạn cho tất cả các i từ 0 đến kích thước của mảng - 1. Chúng ta phải tìm số phần tử tối thiểu được chèn vào để làm cho tổng của mảng giống như mục tiêu. Phần tử mảng không được vượt quá giá trị giới hạn.

Vì vậy, nếu đầu vào giống như nums =[2, -2,2], giới hạn =3, mục tiêu =-4, thì đầu ra sẽ là 2 vì chúng ta có thể thêm hai (-3) s, do đó mảng sẽ là [2, -2,2, -3, -3]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • s:=tổng của tất cả các phần tử có trong nums

  • ab:=| mục tiêu - s |

  • trả lại mức trần (ab / limit)

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

from math import ceil

def solve(nums, limit, goal):
   s = sum(nums)
   ab = abs(goal - s)
   return ceil(ab / limit)

nums = [2,-2,2]
limit = 3
goal = -4
print(solve(nums, limit, goal))

Đầu vào

[2,-2,2], 3, -4

Đầu ra

2.0