Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาการเพิ่มองค์ประกอบขั้นต่ำที่จำเป็นเพื่อรับผลรวมเป้าหมายใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกสองตัวแปร k และ t ให้เราพิจารณาการดำเนินการที่เราเลือกองค์ประกอบที่พูดว่า e ในช่วง [-k, k] และใส่ลงใน nums ในตอนท้าย เราต้องหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นเพื่อให้ผลรวมของ nums เท่ากับเป้าหมาย

ดังนั้น ถ้าอินพุตเท่ากับ nums =[3, 1] k =4 t =19 แล้วผลลัพธ์จะเป็น 4 เพราะเราสามารถบวกได้เช่น [3, 1, 4, 4, 4, 3] เพื่อให้ได้ผลรวม 19 .

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ทั้งหมด :=ผลรวมขององค์ประกอบทั้งหมดที่มีอยู่ในจำนวน

  • diff :=|t - ทั้งหมด|

  • ผลลัพธ์ :=ชั้นของ (diff/k)

  • ถ้าผลลัพธ์ * k ไม่เหมือนกับ diff แล้ว

    • ผลลัพธ์ :=ผลลัพธ์ + 1

  • ส่งคืนผลลัพธ์

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

def solve(nums, k, t):
   total = sum(nums)

   diff = abs(t - total)
   result = diff // k

   if result * k != diff:
      result = result + 1

   return result

nums = [3, 1]
k = 4
t = 19
print(solve(nums, k, t))

อินพุต

[3, 1], 4, 19

ผลลัพธ์

4