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

รหัส C ++ เพื่อค้นหาจำนวนคอมโบแบตเตอรี่


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

ดังนั้น หากอินพุตเป็น n =6, k =2, batt ={2, 4, 4, 2, 1, 3} ผลลัพธ์จะเป็น 1

ใช้แบตเตอรี่ร่วมกันได้เพียงชุดเดียวสำหรับอุปกรณ์จ่ายไฟเป็นเวลา k ครั้ง

ขั้นตอน

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

ans := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   if batt[i] + k <= 5, then:
      (increase ans by 1)
return 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