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

C++-এ জল ও জাগ সমস্যা


দুটি জাগ দেওয়া আছে যাদের ধারনক্ষমতা x আর y লিটার। অসীম জল সরবরাহ আছে। এখন নির্ধারণ করতে হবে z লিটার জল এই দুটি জাগ দিয়ে নিখুঁতভাবে মাপা যায় কিনা। যদি মাপা যায়, তবে শেষে এক বা দুটো জাগেই ঠিক z লিটার জল থাকতে হবে।

কয়েকটি অপারেশন করতে পারি:

  • যেকোনো জাগ পুরোপুরি জল দিয়ে ভরুন।
  • যেকোনো জাগ খালি করুন।
  • এক জাগ থেকে অন্য জাগে জল বরণ করুন যতক্ষণ না দ্বিতীয় জাগটি পূর্ণ হয় অথবা প্রথম জাগটি খালি হয়।
উদাহরণ: x = 2, y = 5, z = 4 হলে true ফেরত দেবে।

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

  • যদি x + y < z, false ফেরত দিন।
  • যদি x == z বা y == z বা x + y == z, true ফেরত দিন।
  • z % gcd(x, y) == 0 হলে true, অন্যথায় false ফেরত দিন।

উদাহরণ (C++)

#include <bits/stdc++.h&g; using namespace std; class Solution {    public:    bool canMeasureWater(int x, int y, int z) {       if(x + y < z) return false;       if(x == z || y == z || x + y == z) return true;       return z % __gcd(x, y) == 0;    } }; main(){    Solution ob;    cout << (ob.canMeasureWater(3,5,4)); }

ইনপুট

3 5 4

আউটপুট

1

  1. C++-এ প্রাইম নম্বর ও ফিবোনাচ্চি সংখ্যা

  2. Go এবং C++-এর পার্থক্য

  3. C++-এ fmax() এবং fmin() ফাংশন

  4. C++-এ delete() এবং free()