আমাদের দুটি অ্যারে দেওয়া হয়েছে ধরা যাক, 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