สมมติว่าเรามีรายการตัวเลขที่เรียกว่า 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