हमें धनात्मक पूर्णांक संख्याओं की एक सरणी और एक पूर्णांक चर k दिया गया है। कार्य एक सरणी में तत्वों की संख्या की गणना करना है जो दिए गए मान k से विभाज्य है।
इनपुट - int arr[] ={4, 2, 6, 1, 3, 8, 10, 9}, k =2
आउटपुट - एक सरणी में तत्वों की संख्या की गणना करें जो 2 से विभाज्य हैं - 5
स्पष्टीकरण - हम एक सरणी में तत्वों को एक मान k से विभाजित करेंगे और जांचेंगे कि रिमाइंडर 0 है या नहीं। तो, 4 2 से विभाज्य है, 2 2 से विभाज्य है, 6 2 से विभाज्य है, 1 2 से विभाज्य नहीं है, 3 2 से विभाज्य नहीं है, 8 2 से विभाज्य है, 10 2 से विभाज्य है, 9 है 2 से विभाज्य नहीं है। इसलिए, एक सरणी में 5 तत्व हैं जो k यानी 2 से पूरी तरह से विभाज्य हैं।
इनपुट - int arr[] ={3, 2, 9, 15, 0, 8, 10}, k =3
आउटपुट − एक सरणी में उन तत्वों की संख्या गिनें जो 3 से विभाज्य हैं − 3
स्पष्टीकरण - हम एक सरणी में तत्वों को एक मान k से विभाजित करेंगे और जांचेंगे कि रिमाइंडर 0 है या नहीं। तो, 3 3 से विभाज्य है, 2 3 से विभाज्य नहीं है, 9 3 से विभाज्य है, 15 3 से विभाज्य है, 0 किसी भी संख्या से विभाज्य नहीं है, 8 3 से विभाज्य नहीं है, 10 विभाज्य नहीं है 3 से। तो, एक सरणी में 3 तत्व हैं जो k से पूरी तरह से विभाज्य हैं यानी 23
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
किसी विशेष समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं। तो सबसे पहले हम एक भोले दृष्टिकोण के साथ जाएंगे।
-
पूर्णांक तत्वों की एक सरणी इनपुट करें और एक पूर्णांक चर k
-
किसी सरणी की लंबाई की गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें।
-
k द्वारा विभाज्य तत्वों की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना लें
-
0 से एक सरणी की लंबाई तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, IF arr[i] % k =0 चेक करें और फिर गिनती को 1 से बढ़ा दें
-
गिनती वापस करें
-
परिणाम प्रिंट करें।
कुशल दृष्टिकोण
-
पूर्णांक प्रकार के वेक्टर में इनपुट तत्व और एक पूर्णांक चर k लें।
-
k द्वारा विभाज्य तत्वों की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना लें
-
काउंट को कॉल के रूप में एक इनबिल्ट काउंट_इफ () फ़ंक्शन पर सेट करें जो वेक्टर.बेगिन (), वेक्टर.एंड () को एक तर्क के रूप में लेगा और ट्रैवर्सल शुरू करेगा फिर i%k अगर 0.
-
परिणाम प्रिंट करें।
उदाहरण (बेवकूफ दृष्टिकोण)
#include <bits/stdc++.h> using namespace std; int divisible_k(int arr[], int size, int k){ int count = 0; for(int i = 0; i<size; i++){ if(arr[i]%k==0){ count++; } } return count; } int main(){ int arr[] = {4, 2, 6, 1, 3, 8, 10, 9}; int k = 2; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count the number of elements in an array which are divisible by "<<k<<" are: "<<divisible_k(arr, size, k); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count the number of elements in an array which are divisible by 2 are: 5
उदाहरण (कुशल दृष्टिकोण)
#include <bits/stdc++.h> using namespace std; int main(){ vector<int> vec = {4, 2, 6, 1, 3, 8, 10, 9}; int count = count_if(vec.begin(), vec.end(), [](int i, int k = 2) { return i % k == 0; }); cout<<"Count the number of elements in an array which are divisible by k are: "<<count; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count the number of elements in an array which are divisible by 2 are: 5