কম্পিউটার

C++ এ একই অঙ্কের সমষ্টিযুক্ত দুটি অ্যারে থেকে স্বতন্ত্র জোড়া গণনা করুন


আমাদের দুটি অ্যারে দেওয়া হয়েছে ধরা যাক, arr_1[] এবং arr_2[] এর পূর্ণসংখ্যার মান রয়েছে এবং কাজটি হল একই অঙ্কের যোগফল বিশিষ্ট স্বতন্ত্র জোড়ার গণনা করা। এর মানে, একটি জোড়া তৈরি করার জন্য একটি arr_1[] থেকে একটি মান এবং arr_2[] থেকে দ্বিতীয় মান নির্বাচন করা উচিত এবং উভয় মানেরই সমান অঙ্ক থাকা উচিত।

এক ধরণের ডেটা স্ট্রাকচার অ্যারে করে যা একই ধরণের উপাদানগুলির একটি নির্দিষ্ট-আকারের অনুক্রমিক সংগ্রহ সঞ্চয় করতে পারে। একটি অ্যারে ডেটা সংগ্রহের জন্য ব্যবহার করা হয়, তবে একই ধরণের ভেরিয়েবলের সংগ্রহ হিসাবে একটি অ্যারেকে ভাবতে প্রায়ই এটি বেশি কার্যকর।

উদাহরণস্বরূপ

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {1, 31, 6, 8}
Output − count is 4

ব্যাখ্যা − মোট 4 টি জোড়া আছে যার সমষ্টি সংখ্যার সমান এবং সেগুলি হল (1, 1), (22, 31), (42, 6) এবং (17, 8)।

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {2, 78, 6, 18}
Output − count is 1

ব্যাখ্যা − মোট সংখ্যার সমষ্টির জন্য শুধুমাত্র একটি জোড়া আছে এবং সেটি হল (42, 6)।

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {2, 78, 16, 18}
Output − count is 0

ব্যাখ্যা − একই অঙ্কের যোগফলের কোন জোড়া নেই তাই গণনা হল 0৷

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

  • দুটি অ্যারে তৈরি করুন আসুন বলি, arr_1[] এবং arr_2[>

  • length() ফাংশন ব্যবহার করে উভয় অ্যারের দৈর্ঘ্য গণনা করুন যা একটি অ্যারের উপাদান অনুযায়ী একটি পূর্ণসংখ্যা মান প্রদান করবে।

  • একটি সেট টাইপ ভেরিয়েবল তৈরি করুন, আসুন বলি st

  • i to 0 এবং i arr_1 এর থেকে কম আকারের জন্য লুপ শুরু করুন[>

  • লুপের ভিতরে, j থেকে 0 এবং j এর জন্য আর একটি লুপ শুরু করুন arr_2[] এর থেকে কম।

  • Sum(arr[i]) =sum(arr_2[j]) কিনা চেক করুন তারপর arr_1[i] arr_2[j] এর থেকে কম কিনা দেখুন তারপর insert(make_pair(arr_1[i], arr_2[j])

  • অন্যথায়, insert(make_pair(arr_2[j], arr_1[i])।

  • st.size()

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

উদাহরণ

#include <iostream>
#include <set>
using namespace std;
// Function to find the
// sum of digits of a number
int sumdigits(int n){
   int sum = 0;
   while (n > 0){
      sum += n % 10;
      n = n / 10;
   }
   return sum;
}
//function to count the number of pairs
int paircount(int arr_1[], int arr_2[], int size1, int size2){
   // set is used to avoid duplicate pairs
   set<pair<int, int> > myset;
   for (int i = 0; i < size1; i++){
      for (int j = 0; j < size2; j++){
         // check sum of digits
         // of both the elements
         if (sumdigits(arr_1[i]) == sumdigits(arr_2[j])){
            if (arr_1[i] < arr_2[j]){
               myset.insert(make_pair(arr_1[i], arr_2[j]));
            } else{
               myset.insert(make_pair(arr_2[j], arr_1[i]));
            }
         }
      }
   }
   // return size of the set
   return myset.size();
}
// Driver code
int main(){
   int arr_1[] = { 1, 22, 42, 17 };
   int arr_2[] = { 5, 31, 6, 8 };
   int size1 = sizeof(arr_1) / sizeof(arr_1[0]);
   int size2 = sizeof(arr_2) / sizeof(arr_2[0]);
   cout <<"count is "<<paircount(arr_1, arr_2, size1, size2);
   return 0;
}

আউটপুট

আমরা যদি উপরের কোডটি চালাই তাহলে আমরা নিম্নলিখিত আউটপুট &miuns;

পাব
count is 3

  1. C++ এ সর্বাধিক যোগফল সহ দুটি অ্যারে থেকে জোড়ার যোগফল খুঁজুন

  2. C++ এ বিভাজ্য 'k' সমষ্টি সহ সাব-ম্যাট্রিক্স গণনা করুন

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

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