हमें संख्याओं की एक सरणी दी गई है। लक्ष्य सरणी के तत्वों की जोड़ी को ढूंढना है जैसे कि वे शर्त रखते हैं
अगर (i*arr[i]> j*arr[j]) तो (arr[i],arr[j]) एक मान्य जोड़ी है।
अगर सरणी [5,4,3,2,1] है तो जोड़े [3,1] और [2,1] होंगे।
आइए उदाहरणों से समझते हैं।
इनपुट - गिरफ्तार [] =[ 1,5,4,1,2,8,3 ]
आउटपुट − i*arr[i]> j*arr[j] रखने वाली सरणी में युग्मों की संख्या − 3
हैस्पष्टीकरण - जोड़े हैं (5,1), (4,1), (8,3)
इनपुट - एआर [] =[ -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). अगर शर्त सही है तो वेतन वृद्धि की गणना करें।
-
पूर्णांकों की एक सरणी लें।
-
Function 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