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

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

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

উদাহরণ

ইনপুট − int arr_1[] = {1, 22, 42, 17}    Int arr_2[] = {1, 31, 6, 8} আউটপুট − গণনা 4

ব্যাখ্যা − মোট 4টি জোড়ার অঙ্কযোগফল একই এবং সেগুলো হল (1, 1), (22, 31), (42, 6) এবং (17, 8)।

ইনপুট − int arr_1[] = {1, 22, 42, 17}    Int arr_2[] = {2, 78, 6, 18} আউটপুট − গণনা 1

ব্যাখ্যা − মোট একটিই জোড়ার অঙ্কযোগফল একই এবং সেটি হল (42, 6)।

ইনপুট − int arr_1[] = {1, 22, 42, 17}    Int arr_2[] = {2, 78, 16, 18} আউটপুট − গণনা 0

ব্যাখ্যা − একই অঙ্কযোগফল নিয়ে কোনো জোড়া নেই, তাই গণনা 0।

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

  • দুটি অ্যারে তৈরি করুন, যেমন arr_1[] এবং arr_2[]
  • length() ফাংশন ব্যবহার করে দুটি অ্যারের দৈর্ঘ্য গণনা করুন
  • একটি set টাইপ ভেরিয়েবল তৈরি করুন, যেমন st
  • i = 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;

// একটি সংখ্যার অঙ্কযোগফল খুঁজে বের করার ফাংশন
int sumdigits(int n) {
    int sum = 0;
    while (n > 0) {
        sum += n % 10;
        n = n / 10;
    }
    return sum;
}

// জোড়ার সংখ্যা গণনা করার ফাংশন
int paircount(int arr_1[], int arr_2[], int size1, int size2) {
    // ডুপ্লিকেট জোড়া এড়াতে set ব্যবহার
    set<pair<int, int> > myset;
    for (int i = 0; i < size1; i++) {
        for (int j = 0; j < size2; j++) {
            // উভয় উপাদানের অঙ্কযোগফল চেক করুন
            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]));
                }
            }
        }
    }
    // 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;
}

আউটপুট

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

count is 3
  1. দুই অ্যারে থেকে সর্বোচ্চ জোড়া যোগফল বের করা (C++)

  2. সাব-ম্যাট্রিক্সের সম k দিয়ে বিভাজ্য হলে তাদের সংখ্যা গণনা (C++)

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

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