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