Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โค้ด C++ หาจำนวนการจัดชุดแบตเตอรี่

สมมติว่าเรามีแบตเตอรี่ n ก้อน ใช้ได้สูงสุด 5 ครั้ง มีอุปกรณ์ที่ต้องใช้แบตเตอรี่ 3 ก้อน และการใช้งานแต่ละครั้งเพิ่มจำนวนการใช้ของแบตเตอรี่ขึ้น 1 หากเราต้องใช้งานอุปกรณ์ k ครั้ง เราต้องหาว่าสามารถจัดชุดแบตเตอรี่ได้กี่ชุด แบตเตอรี่ไม่สามารถใช้ในสองอุปกรณ์พร้อมกัน และแบตเตอรี่ที่ใช้ครบ 5 ครั้งแล้วไม่สามารถนำไปใช้ได้ จำนวนครั้งที่ใช้แล้วของแบตเตอรี่แต่ละก้อนกำหนดในอาร์เรย์ batt

เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 6, k = 2, batt = {2, 4, 4, 2, 1, 3} ผลลัพธ์จะได้ 1

สามารถจัดชุดแบตเตอรี่ได้เพียง 1 ชุดเท่านั้นสำหรับการใช้งาน k ครั้ง

ขั้นตอนการแก้ปัญหา

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

ans := 0 สำหรับ i := 0 เมื่อ i < n เพิ่ม i ทีละ 1 ทำ:    ถ้า batt[i] + k <= 5 แล้ว:       (เพิ่ม ans ขึ้น 1) คืนค่า ans / 3

ตัวอย่างโค้ด

ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:

#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int n, int k, int batt[]) {    int ans = 0;    for(int i = 0; i < n; i++){       if(batt[i] + k <= 5)          ans++;    }    return ans / 3; } int main() {    int n = 6, k = 2, batt[] = {2, 4, 4, 2, 1, 3};    cout<< solve(n, k, batt);    return 0; }

ข้อมูลนำเข้า

6, 2, {2, 4, 4, 2, 1, 3}

ข้อมูลส่งออก

1