কম্পিউটার টিউটোরিয়াল

C++-এ বর্জ্য বিনা উপাদান দিয়ে বরগারের সংখ্যা


মান লইয়া নিন দুটি পূর্ণসংখ্যা tomatoSlices আর cheeseSlices। এগুলো দুটি রকম বরগারের উপাদান:

  • জাম্বো বরগার: ৪ টি টমেটো স্লাইস আর ১ টি চিজ স্লাইস।
  • স্মল বরগার: ২ টি টমেটো স্লাইস আর ১ টি চিজ স্লাইস।

আমাদের খুঁজে বের করতে হবে [total_jumbo, total_small] যেন টমেটো স্লাইস আর চিজ স্লাইস — দুটোরই অবশিষ্টাংশ ০ হয়। যদি সম্ভব না হয় তবে খালি অ্যারে [] ফেরত দিতে হবে। উদাহরণস্বরূপ, ইনপুট tomatoSlices = 16 আর cheeseSlices = 7 হলে আউটপুট হবে [1, 6]। অর্থাৎ ১ টি জাম্বো আর ৬ টি স্মল বরগার বানাতে ৪×১ + ২×৬ = ১৬ টি টমেটো আর ১ + ৬ = ৭ টি চিজ লাগবে।

সমাধানের ধাপগুলো:

  • ans নামের একটি অ্যারে বানান।
  • যদি টমেটো বিজোড় হয়, অথবা চিজ > টমেটো/২, অথবা টমেটো > ৪×চিজ হয়, তবে ans ফেরত দিন।
  • x := (4 * cheese - tomato) / 2
  • y := (tomato - (2*x)) / 4
  • ans-এ প্রথমে 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, ]

  1. C++-এ K-এর চেয়ে বড় সমান সাবঅ্যারে সামের শর্টেস্ট দৈর্ঘ্য

  2. C++-এ বাউন্ডেড সর্বোচ্চ মান সহ সাবঅ্যারে গণনা

  3. C++ প্রোগ্রাম: সংখ্যা b-বেসে ১ দিয়ে শুরু হয় কিনা চেক

  4. C++-এ ভেরিয়েবল এবং রিয়েল নাম্বার দিয়ে অ্যারে ইনিশিয়ালাইজেশন