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

Số lượng bánh mì kẹp thịt không lãng phí thành phần trong C ++

Giả sử chúng ta có hai số nguyên cà chua và phô mai. Đây là thành phần của các loại bánh mì kẹp thịt khác nhau -

  • Jumbo Burger:4 lát cà chua và 1 lát pho mát.
  • Bánh mì kẹp thịt nhỏ:2 lát cà chua và 1 lát pho mát.

Ta phải tìm [total_jumbo, total_small] sao cho số lát cà chua còn lại bằng 0 và số miếng phô mai còn lại cũng bằng 0. []. Vì vậy, nếu đầu vào là coffeeSlices =16 và flagseSlices =7, thì đầu ra sẽ là [1, 6]. Vì vậy, điều này cho thấy, để làm một bánh mì kẹp thịt jumbo và 6 bánh mì kẹp thịt nhỏ, chúng ta cần 4 * 1 + 2 * 6 =16 cà chua và 1 + 6 =7 miếng phô mai.

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

  • tạo một mảng được gọi là ans
  • nếu cà chua lẻ hoặc phô mai> cà chua / 2 hoặc cà chua> 4 * phô mai, thì trả về ans
  • x:=(4 * pho mát - cà chua) / 2
  • y:=(cà chua - (2 * x)) / 4
  • chèn y rồi x vào mảng ans
  • trả lại ans

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

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector<int> numOfBurgers(int t, int c) {
      vector <int> ans;
      if(t % 2 != 0 || c > t/2 || t > c*4)return ans;
      int x = (4 * c - t) / 2;
      int y = ( t - (2 * x) )/ 4;
      ans.push_back(y);
      ans.push_back(x);
      return ans;
   }
};
main(){
   Solution ob;
   print_vector(ob.numOfBurgers(16,7));
}

Đầu vào

16
7

Đầu ra

[1, 6, ]