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

C++-এ N টাকা দিয়ে সর্বোচ্চ পানি কেনা (বোতল রিটার্ন পলিসি সহ)

আমাদের N টাকা আছে। পানির বোতলের রেট: প্লাস্টিক বোতল - A টাকা প্রতি লিটার, গ্লাস বোতল - B টাকা প্রতি লিটার। গ্লাস বোতল রিটার্ন করলে E টাকা ফেরত পাওয়া যায়। তাই গ্লাস বোতলের প্রভাবে খরচ = B - E টাকা।

যদি প্লাস্টিক বোতলের দাম (A) এখনও B-E-র চেয়ে কম হয়, তবে শুধু প্লাস্টিক কেনা। অন্যথায় প্রথমে (N-E)/(B-E) গ্লাস বোতল কিনে বাকি টাকায় প্লাস্টিক কিনা।

ইনপুট

N = 6, A = 5, B = 4, E = 3

আউটপুট

Maximum litres of water: 3

ব্যাখ্যা: B-E=1 < A। N-E=3, ৩ টাকায় ৩ লিটার গ্লাস বোতল কিনা যায়।

ইনপুট

N = 10, A = 5, B = 10, E = 3

আউটপুট

Maximum litres of water: 2

ব্যাখ্যা: B-E=7 > A। ১০/৫ = ২ লিটার প্লাস্টিক বোতল।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • money, pbottle, gbottle, gempty ভেরিয়েবল।
  • maxWater(int mny, int pb, int gb, int ge) ফাংশন।
  • gb = gbottle - gempty (নতুন গ্লাস বোতল দাম)।
  • যদি gb < pb হয়: tmp = (mny - ge) / gb; litrs = max(tmp, 0); mny -= litrs*gb; litrs += mny/pb।
  • অন্যথায় শুধু প্লাস্টিক: mny/pb।
  • ফলাফল প্রিন্ট।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

void maxWater(int mny, int pb, int gb, int ge){
    int litrs;
    if (gb < pb){
        int tmp = (mny - ge) / gb;
        litrs = tmp > 0 ? tmp : 0;
        mny -= litrs * gb;
        litrs += mny / pb;
        cout << "Maximum Liters of water : " << litrs << endl;
    }
    else
        cout << "Maximum Liters of water only Plastic bottles: " << (mny / pb) << endl;
}

int main(){
    int money = 20, pbottle = 5, gbottle = 10, gempty = 8;
    gbottle = gbottle - gempty;
    maxWater(money, pbottle, gbottle, gempty);
    return 0;
}

আউটপুট

Maximum Liters of water: 14
  1. C++-এ নির্দিষ্ট পার্থক্য কম থাকা জোড়ার সর্বোচ্চ সম বের করার প্রোগ্রাম

  2. C++-এ ৪টি ডিজিট থেকে সর্বোচ্চ সম্ভাব্য সময় (২৪ ঘণ্টা ফরম্যাট) বের করার প্রোগ্রাম

  3. C++-এ আয়তাকার কাটিয়ে ন্যূনতম এলিমেন্টের সর্বোচ্চ এলাকা বের করার প্রোগ্রাম

  4. C++-এ N*N চেসবোর্ডে সর্বোচ্চ বিশপ বসানো