हमें पूर्णांक प्रकार के तत्वों की एक क्रमबद्ध सरणी और एक पूर्णांक चर x दिया जाता है और कार्य दिए गए सरणी से जोड़े बनाना और जोड़ी में तत्वों के उत्पाद की गणना करना और जांचना है कि परिकलित उत्पाद k से कम है या नहीं।पी>
इनपुट
int arr[] = {2, 7, 1, 0, 8}, int k = 10
आउटपुट
Count of pairs in a sorted array whose product is less than k are: 7
स्पष्टीकरण
The pairs that can be formed from the given array are: (2, 7) = 14(greater than k), (2, 1) = 2(less than k), (2, 0) = 0(less than k), (2, 8) = 16(greater than k), (7, 1) = 7(less than k), (7, 0) = 0(less than k), (7, 8) = 56(greater than k), (1, 0) = 0(less than k), (1, 8) = 8(less than k), (0, 8) = 0(less than k). So, the count of pairs with sum less than k are 7.
इनपुट
int arr[] = {2, 4, 6, 8}, int k = 10
आउटपुट
Count of pairs in a sorted array whose product is less than k are: 1
स्पष्टीकरण
The pairs that can be formed from the given array are: (2, 4) = 8(less than k), (2, 6) = 12(greater than k), (2, 8) = 16(greater than k), (4, 6) = 24(greater than x), (4, 8) = 32(greater than k), (6, 8) = 48(greater than k). So, the count of pairs with products less than k is 1.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
दी गई समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं, अर्थात् सरल दृष्टिकोण और कुशल दृष्टिकोण। तो आइए सबसे पहले भोले दृष्टिकोण . को देखें ।
-
पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें
-
k से कम उत्पाद वाले जोड़े की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।
-
एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, एक और लूप फॉर जे से i + 1 तक एक ऐरे के आकार तक शुरू करें
-
लूप के अंदर उत्पाद को arr[i] * arr[j] के रूप में परिकलित करें और IF उत्पाद की जाँच करें
-
गिनती वापस करें
-
प्रिंट परिणाम।
कुशल तरीका
-
पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें
-
x से कम योग वाले युग्मों की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।
-
arr_0 को 0 के रूप में और arr_1 को आकार-1 के रूप में सेट करें
-
arr_0 से arr_1 तक के लिए लूप प्रारंभ करें_1
-
लूप के अंदर, IF arr[arr_0] * arr[arr_1]
-
गिनती वापस करें
-
परिणाम प्रिंट करें।
उदाहरण (बेवकूफ दृष्टिकोण)
#include <iostream> using namespace std; int pair_product(int arr[], int size, int k){ int count = 0; int product = 1; for(int i = 0 ; i<size ; i++){ for(int j = i+1; j<size; j++){ product = arr[i] * arr[j]; if(product < k){ count++; } } } return count; } int main(){ int arr[] = {5, 8, 2, 1, 3}; int size = sizeof(arr) / sizeof(arr[0]); int k = 10; cout<<"Count of pairs in a sorted array whose product is less than k are: "<<pair_product(arr, size, k); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of pairs in a sorted array whose product is less than k are: 5
उदाहरण (कुशल दृष्टिकोण)
#include <iostream> using namespace std; int pair_product(int arr[], int size, int k){ int arr_0 = 0; int arr_1 = size-1; int count = 0; int product = 1; while(arr_0 < arr_1){ product = arr[arr_0] * arr[arr_1]; if (product < k){ count = count + (arr_1 - arr_0); arr_0++; } else{ arr_1--; } } return count; } int main(){ int arr[] = {1, 3, 4, 2, 1}; int size = sizeof(arr) / sizeof(arr[0]); int k = 5; cout<<"Count of pairs in a sorted array whose product is less than k are: "<<pair_product(arr, size, k); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of pairs in a sorted array whose product is less than k are: 10