আমাদের n ধনাত্মক সংখ্যার একটি অ্যারে দেওয়া হয়েছে৷ লক্ষ্য হল অর্ডার করা জোড়া (i,j) গণনা করা যাতে arr[i]*arr[j]> arr[i] +arr[j] এবং 0<=i
আমরা প্রতিটি জোড়া সংখ্যার জন্য টু লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। এখন arr[i] এবং arr[j] এর যোগফল এবং গুণফল গণনা করুন। যদি পণ্যটি যোগফলের সংখ্যার চেয়ে বেশি হয়।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − Arr[]={ 1,1,2,3 } N=4
আউটপুট − জোড়ার সংখ্যা − 1
ব্যাখ্যা − শুধুমাত্র বৈধ জোড়া হল − (2,3)
2*3=6 > 2+3=5
ইনপুট − Arr[]={ 2,2,2 } N=3
আউটপুট − জোড়ার সংখ্যা − 0
ব্যাখ্যা − 2*2 এবং 2+2 উভয়ই 4। কোন জোড়া নেই যেখানে পণ্য>সমষ্টি
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা ধনাত্মক সংখ্যা দিয়ে শুরু করা একটি পূর্ণসংখ্যা অ্যারে অ্যারে নিই।
-
একটি পরিবর্তনশীল n নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।
-
ফাংশন countPairs(int arr[], int n) একটি অ্যারে নেয়, ইনপুট হিসাবে এর দৈর্ঘ্য এবং পণ্য>সমষ্টির সাথে জোড়ার গণনা প্রিন্ট করে।
-
জোড়ার প্রতিটি উপাদানের জন্য লুপের জন্য দুটি ব্যবহার করে ট্রাভার্স অ্যারে।
-
0<=i
-
arr[i]*arr[j]>arr[i]+arr[j] কিনা চেক করুন। সত্য হলে সংখ্যা বৃদ্ধি।
-
সমস্ত লুপ গণনার শেষে পণ্য> যোগফল
আছে এমন জোড়ার মোট সংখ্যা থাকবে -
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#include <bits/stdc++.h> #include <math.h> using namespace std; int countPairs(int arr[], int n){ int count=0; int sum=0; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(arr[i]*arr[j]>arr[i]+arr[j]) //condition { count++; } } } return count; } int main(){ int arr[] = { 1,2,3,2 }; int len = sizeof(arr) / sizeof(int); cout<<"Count of number of pairs :"<<countPairs(arr, len); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of number of pairs :2