আমরা সংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল অ্যারের উপাদানগুলির জোড়া খুঁজে বের করা যাতে তারা শর্ত ধরে রাখে
যদি (i*arr[i]> j*arr[j]) তাহলে (arr[i],arr[j]) একটি বৈধ জোড়া।
যদি অ্যারে হয় [ 5,4,3,2,1] তাহলে জোড়া হবে [3,1] এবং [2,1]।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − arr[] =[ 1,5,4,1,2,8,3 ]
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যা i*arr[i]> j*arr[j] ধরে থাকে −3
ব্যাখ্যা − জোড়া হল (5,1), (4,1), (8,3)
ইনপুট − arr[] =[ -1,-2,3,4,5,6 ]
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যা i*arr[i]> j*arr[j] ধরে থাকে −1
ব্যাখ্যা − জোড়া হল (-1,-2)
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা 1 থেকে N পর্যন্ত লুপ দুইবার ব্যবহার করব। প্রতিটি i এবং arr[i] জন্য j এবং arr[j] অনুসন্ধান করুন যেমন i*arr[i]>j*arr[j] ( এবং i!=j)। শর্ত সত্য হলে সংখ্যা বৃদ্ধি করুন।
-
পূর্ণসংখ্যার একটি অ্যারে নিন।
-
ফাংশন condition_pair(int arr[], int size) অ্যারে এবং এর আকার নেয় এবং জোড়ার সংখ্যা প্রদান করে যাতে শর্ত পূরণ হয়।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
i=1 থেকে i
এ যাত্রা করুন -
j=i+1 থেকে j
ট্র্যাভার্স -
যদি ( i*arr[i] )> ( j*arr[j] ) সত্য হয়। সংখ্যা বৃদ্ধি।
-
প্রতিটি i এবং j এর জন্য temp=(i*j)%(i+j) হিসাব করুন।
-
উভয় পুনরাবৃত্তির সমাপ্তির পর, গণনায় এই ধরনের জোড়ার মোট সংখ্যা থাকবে।
-
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#include <iostream> using namespace std; int condition_pair(int arr[], int size){ int count = 0; for (int i = 0; i < size - 1; i++){ for (int j = i + 1; j < size; j++){ if(i*arr[i] > j*arr[j]){ count++; } } } return count; } int main(){ int arr[] = { 2, 4, 1, 9, 6 }; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of pairs in an array that hold i*arr[i] > j*arr[j] are: "<<condition_pair(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of pairs in an array that hold i*arr[i] > j*arr[j] are: 2