কম্পিউটার

অ্যারেতে জোড়া গণনা করুন যার যোগফল C++ এ K দ্বারা বিভাজ্য


আমাদেরকে পূর্ণসংখ্যার ধরণের উপাদানগুলির একটি অ্যারে দেওয়া হয়েছে এবং কাজটি হল প্রদত্ত অ্যারে থেকে জোড়া তৈরি করা এবং জোড়ার উপাদানগুলির যোগফল গণনা করা এবং প্রদত্ত যোগফলটি k দ্বারা বিভাজ্য কিনা তা পরীক্ষা করা৷

ইনপুট − int arr[] ={4, 1, 2, 0, 2}, int k =2

আউটপুট − অ্যারেতে জোড়া গণনা করুন যার যোগফল k দ্বারা বিভাজ্য হল − 2

ব্যাখ্যা − প্রদত্ত অ্যারে থেকে যে জোড়াগুলি তৈরি করা যেতে পারে তা হল:(4, 1) =5 (2 দ্বারা বিভাজ্য নয়), (4, 2) =6 (2 দ্বারা বিভাজ্য), (4, 0) =4 (দ্বারা বিভাজ্য) 2), (1, 2) =3 (2 দ্বারা বিভাজ্য নয়), (1, 0) =1 (2 দ্বারা বিভাজ্য নয়), (2, 0) =2 (2 দ্বারা বিভাজ্য), (2, 2) =4 (2 দ্বারা বিভাজ্য), (0, 2) =2 (2 দ্বারা বিভাজ্য)। সুতরাং যোগফলের যোগফলকে k দ্বারা 2 দ্বারা বিভাজ্য হল (4, 2), (4, 0), (2, 0), (2, 2) এবং (0, 2)।

ইনপুট − int arr[] ={2, 4, 8, 6, 10} , int k =4

আউটপুট − অ্যারেতে জোড়া গণনা করুন যার যোগফল k দ্বারা বিভাজ্য হল − 4

ব্যাখ্যা − প্রদত্ত অ্যারে থেকে যে জোড়াগুলি তৈরি করা যেতে পারে তা হল:(2, 4) =6 (4 দ্বারা বিভাজ্য নয়), (2, 8) =10 (4 দ্বারা বিভাজ্য নয়), (2, 6) =8 (বিভাজ্য) 4 দ্বারা), (2, 10) =12 (4 দ্বারা বিভাজ্য), (4, 8) =12 (4 দ্বারা বিভাজ্য), (4, 6) =10 (4 দ্বারা বিভাজ্য নয়), (4, 10) =14 (4 দ্বারা বিভাজ্য নয়), (8, 6) =14 (4 দ্বারা বিভাজ্য নয়), (8, 10) =18 (4 দ্বারা বিভাজ্য নয়), (6, 10) =16 (4 দ্বারা বিভাজ্য)। সুতরাং 4 দ্বারা বিভাজ্য যোগফলের যোগফল হল (2, 10), (2, 6), (4, 8) এবং (6, 10)।

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

প্রদত্ত সমস্যা সমাধানের জন্য একাধিক পন্থা হতে পারে যেমন নিষ্পাপ দৃষ্টিভঙ্গি এবং দক্ষ পদ্ধতি। তাই আসুন প্রথমে নিষ্পাপ পদ্ধতির দিকে তাকাই .

  • পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে এবং k হিসাবে একটি পূর্ণসংখ্যা ভেরিয়েবল ইনপুট করুন তারপর একটি অ্যারের আকার গণনা করুন এবং ফাংশনে ডেটা পাস করুন

  • k দ্বারা বিভাজ্য যোগফলের সাথে জোড়ার গণনা সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন।

  • একটি অ্যারের আকার পর্যন্ত i থেকে 0 পর্যন্ত লুপ শুরু করুন

  • লুপের ভিতরে, একটি অ্যারের আকার পর্যন্ত j থেকে i + 1 পর্যন্ত আরেকটি লুপ FOR শুরু করুন

  • লুপের ভিতরে arr[i] + arr[j] হিসাবে যোগফল গণনা করুন এবং IF যোগফল % k ==0 চেক করুন তারপর গণনাটি 1 দ্বারা বৃদ্ধি করুন।

  • গণনা ফেরত দিন

  • প্রিন্ট ফলাফল।

দক্ষ পদ্ধতি

  • পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন এবং ফাংশনে ডেটা পাস করুন

  • k দ্বারা বিভাজ্য যোগফলের সাথে জোড়ার গণনা সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন।

  • k আকারের একটি অ্যারে তৈরি করুন কারণ আমাদের k দ্বারা বিভাজ্যতা পরীক্ষা করতে হবে।

  • একটি অ্যারের আকার পর্যন্ত i থেকে 0 পর্যন্ত লুপ শুরু করুন

  • লুপের ভিতরে, arr[i] % k হিসাবে টেম্প সেট করুন এবং অ্যারেটিকে ++চেক[temp] হিসাবে প্রি-ইনক্রিমেন্ট করুন

  • new_arr[0] * (new_arr[0] - 1)/2

    হিসাবে গণনা সেট করুন
  • i থেকে 1 পর্যন্ত i <=k/2 AND i !=(k-i)

    পর্যন্ত লুপ শুরু করুন
  • লুপের ভিতরে, গণনা হিসাবে গণনা সেট করুন + new_arr[i] * (new_arr[k - i])

  • IF k % 2 =0 চেক করুন তারপর গণনা হিসাবে সেট করুন + (new_arr[k / 2] * (new_arr[k / 2] - 1) / 2)

  • গণনা ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ (নিষ্পাপ পদ্ধতি)

#include <iostream>
using namespace std;
int pair_k(int arr[], int size, int k){
   int count = 0;
   for(int i = 0 ;i <size ; i++){
      for(int j = i+1; j<size; j++){
         int sum = arr[i] + arr[j];
         if(sum % k == 0){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {4, 1, 2, 0, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_k(arr, size, k);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count pairs in array whose sum is divisible by k are: 6

উদাহরণ (দক্ষ পদ্ধতি)

#include <iostream>
using namespace std;
int pair_k(int arr[], int size, int k){
   int temp = 0;
   int count = 0;
   int check[k] = {0};
   for (int i = 0; i < size; i++){
      temp = arr[i] % k;
      ++check[temp];
   }
   count = check[0] * (check[0] - 1) / 2;
   for (int i = 1; i <= k / 2 && i != (k - i); i++){
      count = count + check[i] * (check[k - i]);
   }
   if (k % 2 == 0){
      count = count + (check[k / 2] * (check[k / 2] - 1) / 2);
   }
   return count;
}
int main(){
   int arr[] = {4, 1, 2, 0, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_k(arr, size, k);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count pairs in array whose sum is divisible by k are: 6

  1. C++ এ একটি অ্যারেতে সমস্ত জোড়ার XOR-এর যোগফল

  2. C++ এ প্রদত্ত অ্যারেতে থাকা স্বতন্ত্র জোড়ার সংখ্যা গণনা করুন

  3. C++ এ একটি অ্যারেতে বিভাজ্য জোড়া গণনা করুন

  4. C++ এ একটি অ্যারেতে যৌগিক উপাদানের গণনা এবং যোগফল