हमें n धनात्मक संख्याओं की एक सरणी दी गई है। लक्ष्य क्रमबद्ध जोड़े (i,j) को गिनना है जैसे कि arr[i]*arr[j]> arr[i] +arr[j] और 0<=i
हम प्रत्येक जोड़े की संख्या के लिए दो for लूप का उपयोग करके सरणी को पार करेंगे। अब एआर [i] और एआर [जे] के योग और उत्पाद की गणना करें। यदि उत्पाद योग वृद्धि गणना से अधिक है।
आइए उदाहरणों से समझते हैं।
इनपुट - अर []={ 1,1,2,3 } एन=4
आउटपुट - जोड़े की संख्या - 1
स्पष्टीकरण − केवल मान्य युग्म है - (2,3)
2*3=6 > 2+3=5
इनपुट - अर []={ 2,2,2 } एन=3
आउटपुट − जोड़ियों की संख्या − 0
स्पष्टीकरण − 2*2 और 2+2 दोनों 4 है। कोई भी जोड़ा जहां उत्पाद>योग
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं arr[] सकारात्मक संख्याओं के साथ आरंभ किया गया।
-
एक वैरिएबल n लें जो Arr[] की लंबाई को स्टोर करता है।
-
फंक्शन काउंटपेयर्स(int arr[], int n) एक ऐरे लेता है, इसकी लंबाई इनपुट के रूप में और उत्पाद>योग के साथ जोड़े की गिनती प्रिंट करता है।
-
जोड़ी के प्रत्येक तत्व के लिए लूप के लिए दो का उपयोग करके ट्रैवर्स सरणी।
-
0<=i
-
जांचें कि क्या गिरफ्तारी [i] * गिरफ्तार [जे]> गिरफ्तार [i] + गिरफ्तारी [जे]। अगर सही है तो वेतन वृद्धि की संख्या।
-
सभी लूपों के अंत में काउंट की कुल संख्या में जोड़े होंगे जिनका उत्पाद> योग है
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#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