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

C++-এ দুটি ইন্টিজারের সাথে ইভেন-অড টার্ন গেম (Even-Odd Turn Game)

এই সমস্যায়, আমাদের তিনটি ইন্টিজার মান A, B এবং T দেওয়া হয়েছে। আমাদের কাজ হলো দুটি ইন্টিজারের সাথে ইভেন-অড টার্ন গেম খেলার প্রোগ্রাম তৈরি করা।

দুটি ইন্টিজার মান হলো:

T, যা গেমের টার্নের সংখ্যা নির্দেশ করে।
A হলো প্লেয়ার ১-এর মান
B হলো প্লেয়ার ২-এর মান

যদি T-এর মান বিজোড় হয়, তবে A-এর মান ২ দিয়ে গুণিত হবে।
যদি T-এর মান জোড় হয়, তবে B-এর মান ২ দিয়ে গুণিত হবে।
আমাদের শেষে max(A, B) / min(A, B) এর মান বের করতে হবে।

উদাহরণ দিয়ে সমস্যাটি বোঝা যাক

ইনপুট: A = 3, B = 4, T = 3

আউটপুট: 1

ব্যাখ্যা:

১ম টার্ন: T বিজোড়, A ২ দিয়ে গুণিত, A = 6।
২য় টার্ন: T জোড়, B ২ দিয়ে গুণিত, B = 8।
৩য় টার্ন: T বিজোড়, A ২ দিয়ে গুণিত, A = 12।

A = 12                   B = 4

max(A, B) = max(12, 4) = 12
min(A, B) = min(12, 4) = 4
max(A, B) / min(A, B) = 12 / 8 = 1

সমাধানের পদ্ধতি

এই সমস্যার একটি সহজ সমাধান হবে T টার্নের পর A এবং B-এর মান ক্যালকুলেট করে max(A, B) / min(A, B) রিটার্ন করা। এটি T ইটারেশন নেয় একটি কার্যকর সমাধান।

কিন্তু একটি আরও কার্যকর সমাধান সম্ভব এই ফ্যাক্টের ভিত্তিতে যে জোড় মান T-এর জন্য, নতুন A হলো N*A এবং নতুন B হলো N*B।

এটি max(A, B) / min(A, B)-কে একটি কনস্ট্যান্ট বানায় দেয় যেটি সমান max(A, B) / min(A, B)।

যদি T-এর মান বিজোড় হয়, তবে A-এর মান হবে 2*N*A এবং B-এর মান N*B।

এটি max(A, B) / min(A, B)-কে একটি কনস্ট্যান্ট বানায় যেটি সমান max(2A, B) / min(2A, B)।

সমস্যার ফলাফল max(A, B) / min(A, B) =

max(A, B) / min(A, B), যদি T জোড় হয়
max(2A, B) / min(2A, B), যদি T বিজোড় হয়

সমাধানটি ব্যাখ্যা করে প্রোগ্রাম

#include <iostream>
using namespace std;

int EvenOddGame(int A, int B, int T) {
    if (T % 2 == 0)
        return (max(A, B) / min(A, B));
    else
        return (max(2 * A, B) / min(2 * A, B));
    return -1;
}

int main() {
    int A = 3, B = 2, T = 3;
    cout << "The return value of even odd game is " << EvenOddGame(A, B, T);
}

আউটপুট

The return value of even odd game is 3
  1. C++-এ জাম্প গেম IV (Jump Game IV)

  2. C++-এ নির্দিষ্ট মান সহ লিফ নোড মুছুন

  3. C++-এ দেওয়া গুণফল দিয়ে N পূর্ণসংখ্যার সর্বোচ্চ GCD

  4. C++-এ সাধারণ অ্যারে এক ডিফল্ট ভ্যালু দিয়ে ইনিশিয়ালাইজেশন