এই সমস্যায়, আমাদের তিনটি পূর্ণসংখ্যার মান দেওয়া হয়েছে A, B এবং T। আমাদের কাজ হল দুটি পূর্ণসংখ্যার সাথে জোড়-বিজোড় টার্ন গেম খেলার জন্য একটি প্রোগ্রাম তৈরি করা।
দুটি পূর্ণসংখ্যার মান হল :
T, যা গেমের বাঁকের সংখ্যা নির্দেশ করে।
A প্লেয়ার1 এর মান নির্দেশ করে
B প্লেয়ার2
T-এর মান বিজোড় হলে, A-এর মান 2 দ্বারা গুণ করা হয়।
T-এর মান জোড় হলে, B-এর মান 2 দিয়ে গুণ করা হবে।
আমাদের max(A, B) / min(A, B) এর মান খুঁজে বের করতে হবে এবং ফেরত দিতে হবে শেষে।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট: A =3, B =4, T =3
আউটপুট: 1
ব্যাখ্যা:
1ম পালা:T বিজোড়, A কে 2 দ্বারা গুণ করা হয়, A =6।
2য় পালা:T জোড়, B কে 2 দ্বারা গুণ করা হয়, B =8।
3য় পালা:T বিজোড়, A কে 2 দ্বারা গুণ করা হয়, A =12।
A =12 B =4
সর্বোচ্চ(A, B) =সর্বোচ্চ(12, 4) =12
min(A, B) =min(12, 4) =4
সর্বোচ্চ(A, B) / মিনিট(A, B) =12/ 8 =1
সমাধান পদ্ধতি:
সমস্যাটির একটি সহজ সমাধান হল T মোড় নেওয়ার পরে A এবং B এর মান গণনা করা এবং তারপর সর্বাধিক(A, B) / মিনিট (A, B) এর মান ফেরত দেওয়া। এটি টি পুনরাবৃত্তি গ্রহণ করে একটি কার্যকর সমাধান।
কিন্তু T এর জোড় মানের জন্য, নতুন A-এর মান হল N*A এবং নতুন B-এর মান হল N*B।
এটি max(A, B) / min(A, B) এর মানকে একটি ধ্রুবক করে তোলে যার সমান
সর্বোচ্চ(A, B) / মিনিট (A, B)।
T-এর মান বিজোড় হলে, A-এর মান হবে 2*N*A এবং B-এর মান হবে N*B।
এটি max(A, B) / min(A, B) এর মানকে একটি ধ্রুবক করে তোলে যা max(2A, B) / min(2A, B) এর সমান।
সমস্যার ফলাফল সর্বাধিক(A, B) / মিনিট(A, B) =
সর্বোচ্চ(A, B) / মিনিট (A, B), যদি T সমান হয়
সর্বোচ্চ(A, B) / মিনিট (A, 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