কম্পিউটার টিউটোরিয়াল

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

আউটপুট: ২

ব্যাখ্যা: জোড়া: (5,7) কারণ 7%5=2 এবং (5,3) কারণ 5%3=2।

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

আউটপুট: ২

অ্যালগরিদম

  1. দুটি অ্যারে এবং তাদের আকার ইনপুট নিন।
  2. set<pair<int,int>> দিয়ে অদ্বিতীয় জোড়া সংরক্ষণ করুন।
  3. নেস্টেড লুপে দুটি অ্যারে ট্রাভার্স করুন।
  4. প্রতিটি জোড়ার জন্য: যদি arr_1[i] > arr_2[j] হয় তবে arr_1[i] % arr_2[j] == k চেক করুন। অন্যথায় arr_2[j] % arr_1[i] == k চেক করুন।
  5. শর্ত পূরণ হলে সেটে জোড়া ইনসার্ট করুন।
  6. সেটের আকার ফেরত দিন।

C++ বাস্তবায়ন

#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) {
    set<pair<int, int>> se;
    
    for (int i = 0; i < size_arr_1; i++) {
        for (int j = 0; j < size_arr_2; j++) {
            if (arr_1[i] > arr_2[j]) {
                if (arr_1[i] % arr_2[j] == k)
                    se.insert({arr_1[i], arr_2[j]});
            } else {
                if (arr_2[j] % arr_1[i] == k)
                    se.insert({arr_2[j], arr_1[i]});
            }
        }
    }
    return se.size();
}

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. সি++-এ দুটি সর্টেড অ্যারের মার্জ করায় K-তম উপাদান বের করা

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

  4. C++-এ দুটি BST-র নোড জোড়া যাদের যোগফল x গণনা