हमें धनात्मक पूर्णांकों की एक सरणी और एक पूर्णांक चर k दिया गया है। कार्य है सरणी में उन तत्वों की संख्या गिनना जो दिए गए मान k से विभाज्य हैं।
इनपुट - int arr[] = {4, 2, 6, 1, 3, 8, 10, 9}, k = 2
आउटपुट - 2 से विभाज्य सरणी में तत्वों की संख्या: 5
व्याख्या - 4, 2, 6, 8, 10 विभाज्य हैं 2 से। कुल 5 तत्व।
उपयोग किया गया दृष्टिकोण (नाइव)
- सरणी और k को इनपुट करें।
- सरणी की लंबाई ज्ञात करें और फंक्शन में पास करें।
countवेरिएबल लें।- लूप चलाएं i = 0 से size-1 तक।
- यदि
arr[i] % k == 0तोcount++करें। - काउंट वापस करें और प्रिंट करें।
कुशल दृष्टिकोण (STL count_if)
- वेक्टर में एलिमेंट्स लें।
count_ifफंक्शन का उपयोग करें लैम्ब्डा के साथ:[](int i, int k) { return 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 k = 2;
int count = count_if(vec.begin(), vec.end(), [k](int i) { 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