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