কম্পিউটার

C++ এ সংখ্যা নির্বাচন করে যোগফলের পরম পার্থক্যের ভিত্তিতে গেমের বিজয়ীর ভবিষ্যদ্বাণী করুন


এই সমস্যায়, আমাদের n সংখ্যার অ্যারে দেওয়া হয়েছে। এবং এখানে দুইজন খেলোয়াড় X এবং Y আছে। আমাদের কাজ হল গেমের বিজয়ীর ভবিষ্যদ্বাণী করা।

প্লেয়ার X-এর জন্য X এবং Y দ্বারা সংখ্যার যোগফলের পরম পার্থক্য 4-এর গুণিতক হওয়া উচিত। যদি এটি 4 দ্বারা বিভাজ্য না হয়, তাহলে Y জিতবে। প্লেয়ার X খেলা শুরু করে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

Input: a[] = {3 6 9 12}
Output: X
Explaination:
X selects 3 and 6
Y selects 12 and 9
|3+6 - 12+9| = 12, 12 is a multiple of 4.

এই সমস্যাটি সমাধান করার জন্য, আমরা অ্যারের প্রতিটি উপাদান 4 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করব এবং একটি সংখ্যাকে 4 দ্বারা ভাগ করার সময় পাওয়া অবশিষ্টাংশের উপর নজর রাখব। যদি প্রতিটি অবশিষ্টাংশের উপস্থিতি জোড় হয়, তাহলে X জয়ী হয়। অর্থাৎ পরম পার্থক্য 4 দ্বারা বিভাজ্য।

প্রতিটি মানের জন্য arr[i]%4 এর সংখ্যা 0, 1, 2 ,3 সমান হওয়া উচিত।

আমাদের অ্যালগরিদমের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
int playGame(int a[], int n) {
   int count[4] = {0,0,0,0};
   for (int i = 0; i < n; i++) {
      for(int j = 0; j<4;j++){
         if(a[i]%4 == j)
            count[j]++;
      }
   }
   if (count[0] % 2 == 0 && count[1] % 2 == 0 && count[2] % 2 == 0 && count[3] == 0)
      return 1;
   else
      return 2;
}
int main() {
   int a[] = { 4, 8, 5, 9 };
   int n = sizeof(a) / sizeof(a[0]);
   cout<<"Game Started!\n";
   if (playGame(a, n) == 1)
      cout << "X wins the Game";
   else
      cout << "Y wins the Game";
   return 0;
}

আউটপুট

Game Started!
X wins the Game

  1. C++ এ প্রদত্ত পার্থক্যের সাথে একটি জোড়া খুঁজুন

  2. সংখ্যাগুলিকে তাদের সংখ্যার যোগফল অনুযায়ী C++ এ সাজান

  3. C++ এ size_t এবং int এর মধ্যে পার্থক্য কি?

  4. C++ এ int এবং লং এর মধ্যে পার্থক্য কি?