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

จำนวนเบอร์เกอร์ที่ไม่เสียส่วนผสมใน C++


สมมติว่าเรามี TomatoSlices และ cheeseSlices จำนวนเต็มสองจำนวน เหล่านี้เป็นส่วนผสมของเบอร์เกอร์ต่างๆ −

  • จัมโบ้เบอร์เกอร์:มะเขือเทศ 4 ชิ้น และชีส 1 ชิ้น
  • เบอร์เกอร์ขนาดเล็ก:มะเขือเทศ 2 ชิ้น และชีส 1 ชิ้น

เราต้องหา [total_jumbo, total_small] เพื่อให้จำนวน TomatoSlices ที่เหลือเท่ากับ 0 และจำนวน cheeseSlices ที่เหลือเป็น 0 ด้วย หากไม่สามารถทำ TomatoSlices และ cheeseSlices ที่เหลือให้เท่ากับ 0 ได้ []. ดังนั้นหากอินพุตคือ TomatoSlices =16 และ chesseSlices =7 ผลลัพธ์จะเป็น [1, 6] นี่หมายความว่า ในการทำเบอร์เกอร์ขนาดจัมโบ้ 1 ชิ้นและเบอร์เกอร์ขนาดเล็ก 6 ชิ้น เราต้องการ 4*1 + 2*6 =16 ชิ้นมะเขือเทศฝานและ 1 + 6 =7 ชิ้นชีสสไลซ์

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

  • สร้างอาร์เรย์หนึ่งชื่อ ans
  • ถ้ามะเขือเทศเป็นคี่หรือชีส> มะเขือเทศ/2 หรือมะเขือเทศ> 4*ชีส ให้คืนคำตอบ
  • x :=(4 * ชีส - มะเขือเทศ) / 2
  • y :=(มะเขือเทศ – (2*x)) / 4
  • แทรก y แล้ว x ลงในอาร์เรย์ ans
  • คืนสินค้า

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

ตัวอย่าง

#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));
}

อินพุต

16
7

ผลลัพธ์

[1, 6, ]