কম্পিউটার

দুটি অ্যারে থেকে জোড়া গণনা করুন যার মডুলো অপারেশন C++ তে K প্রদান করে


আমাদেরকে ধনাত্মক সংখ্যা এবং একটি মান K সম্বলিত দুটি অ্যারে দেওয়া হয়েছে। লক্ষ্য হল অ্যারের উপাদানগুলির অনন্য জোড়া খুঁজে বের করা যাতে (A,B) প্রকারের জোড়া A%B=K বা B%A=K এবং A এর অন্তর্গত। প্রথম অ্যারে এবং B দ্বিতীয় অ্যারের অন্তর্গত।

আসুন উদাহরণ দিয়ে বুঝতে পারি

ইনপুট − arr_1[] ={1,2,5,3,4}; arr_2[] ={7,1,3}; k=2

আউটপুট − দুটি অ্যারে থেকে জোড়ার গণনা যার মডুলো অপারেশনে K পাওয়া যায় − 2

ব্যাখ্যা − জোড়া হল (5,7) - (arr_1[2],arr_2[1]) 7%5=2 এবং (5,3) - (arr_1[2],arr_2[2]) 5%3=2

ইনপুট − arr_1[] ={2,5}; arr_2[] ={3,7}; k=1

আউটপুট − দুটি অ্যারে থেকে জোড়ার গণনা যার মডুলো অপারেশনে K পাওয়া যায় − 2

ব্যাখ্যা − জোড়া হল (2,3) - (arr_1[0],arr_2[0]) 3%2=1 এবং (2,7) - (arr_1[0],arr_2[1]) 7%2=1

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

এই পদ্ধতিতে আমরা লুপ ব্যবহার করে উভয় অ্যারে অতিক্রম করব। > se সেট করার জন্য জোড়া সন্নিবেশ করুন যেখানে A%B=k বা B%A=k, যেখানে A arr_1 এবং B arr_2 এর অন্তর্গত। সেট se-এর শেষ আকারে দুটি অ্যারে থেকে অনন্য জোড়ার সংখ্যা যার মডিউল অপারেশনে k পাওয়া যায়।

  • সাইজ_arr_1 এবং সাইজ_arr_2 হিসাবে ধনাত্মক উপাদান এবং দৈর্ঘ্য সহ arr_1[] এবং arr_2[] পূর্ণসংখ্যার অ্যারে নিন।

  • পূর্ণসংখ্যা কে নিন।

  • ফাংশন modulo_pairs(int arr_1[], int arr_2[], int size_arr_1, int size_arr_2, int k) উভয় অ্যারে এবং তাদের দৈর্ঘ্য নেয় এবং জোড়াগুলিকে ফেরত দেয় যাতে উভয় অ্যারের উপাদানগুলির মডুলো অপারেশন k পাওয়া যায়৷

  • গণনার প্রাথমিক মান 0 হিসাবে নিন।

  • সেট নিন>se; জোড়া

  • arr_1[] থেকে i=0 থেকে i

  • প্রতিটি জোড়ার জন্য arr_1[i], arr_2[j], arr_1[i]>arr_2[j] কিনা তা পরীক্ষা করুন। যদি হ্যাঁ চেক করুন arr_1[i]%arr_2[j]==k কিনা। যদি সত্য হয় তবে arr_1[i] এবং arr_2[j] এর একটি জোড়া তৈরি করুন এবং se সেট করতে সন্নিবেশ করুন।

  • অন্যথায় দেখুন arr_2[j]%arr_1[i]==k কিনা। যদি সত্য হয় তবে arr_1[i] এবং arr_2[j] এর একটি জোড়া তৈরি করুন এবং se সেট করতে সন্নিবেশ করুন।

  • se.size() হিসাবে গণনা গণনা করুন। অনন্য জোড়া গণনার জন্য।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int modulo_pairs(int arr_1[], int arr_2[], int size_arr_1, int size_arr_2, int k){
   int count = 0;
   set<pair<int, int> > se;
   for (int i = 0; i < size_arr_2; i++){
      for (int j = 0; j < size_arr_1; j++){
         if (arr_1[i] > arr_2[j]){
            if (arr_1[i] % arr_2[j] == k){
               se.insert(make_pair(arr_1[i], arr_2[j]));
            }
         }
         else{
            if (arr_2[j] % arr_1[i] == k){
               se.insert(make_pair(arr_2[j], arr_1[i]));
            }
         }
      }
   }
   count = se.size();
   return count;
}
int main(){
   int arr_1[] = { 2, 7, 1, 9 };
   int arr_2[] = { 4, 10, 3, 10 };
   int size_arr_1 = sizeof(arr_1) / sizeof(arr_1[0]);
   int size_arr_2 = sizeof(arr_2) / sizeof(arr_2[0]);
   int k = 3;
   cout<<"Count of pairs from two arrays whose modulo operation yields K are:"<<modulo_pairs(arr_1, arr_2, size_arr_1, size_arr_2, k);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of pairs from two arrays whose modulo operation yields K are: 2

  1. জোড়ার সংখ্যা যার যোগফল C++ এ 2 এর শক্তি

  2. C++-এ দুটি সাজানো অ্যারের K-th উপাদান

  3. C++ প্রোগ্রামে ক্রমানুসারে দুটি অ্যারে থেকে উপাদান বাছাই করে সর্বোচ্চ যোগফল

  4. দুটি BST থেকে জোড়া গণনা করুন যার যোগফল C++ এ একটি প্রদত্ত মানের x এর সমান