हमें पूर्णांक प्रकार के तत्वों की एक सरणी दी गई है और कार्य दिए गए सरणी से जोड़े बनाना और जोड़ी में तत्वों के योग की गणना करना है और यह जांचना है कि दिया गया योग 4 से विभाज्य है या नहीं।
इनपुट - int arr[] ={4, 1, 2, 0, 2}
आउटपुट − सरणी में ऐसे युग्म गिनें जिनका योग 4 से विभाज्य हो − 2
स्पष्टीकरण - दिए गए सरणी से बनने वाले जोड़े हैं:(4, 1) =5(4 से विभाज्य नहीं), (4, 2) =6(4 से विभाज्य नहीं), (4, 0) =4(विभाज्य) 4 से, (1, 2) =3 (4 से विभाज्य नहीं), (1, 0) =1 (4 से विभाज्य नहीं), (2, 0) =2 (4 से विभाज्य नहीं), (2, 2 ) =4(4 से विभाज्य), (0, 2) =2(4 से विभाज्य नहीं)। तो 4 से विभाज्य योग वाले युग्म हैं (4, 0) और (2, 2)।
इनपुट - int arr[] ={2, 4, 8, 6, 10}
आउटपुट − सरणी में ऐसे युग्म गिनें जिनका योग 4 से विभाज्य हो − 4
स्पष्टीकरण - दिए गए सरणी से बनने वाले जोड़े हैं:(2, 4) =6(4 से विभाज्य नहीं), (2, 8) =10(4 से विभाज्य नहीं), (2, 6) =8(विभाज्य 4 से, (2, 10) =12 (4 से विभाज्य), (4, 8) =12 (4 से विभाज्य), (4, 6) =10 (4 से विभाज्य नहीं), (4, 10) =14(4 से विभाज्य नहीं), (8, 6) =14(4 से विभाज्य नहीं), (8, 10) =18(4 से विभाज्य नहीं), (6, 10) =16(4 से विभाज्य)। तो 4 से विभाज्य योग वाले जोड़े (2, 10), (2, 6), (4, 8) और (6, 10) हैं।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
दी गई समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं जैसे कि सरल दृष्टिकोण और कुशल दृष्टिकोण। तो आइए सबसे पहले भोले दृष्टिकोण . को देखें ।
-
पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें
-
जोड़े की संख्या को 4 से विभाज्य योग के साथ संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।
-
एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, एक और लूप फॉर जे से i + 1 तक एक ऐरे के आकार तक शुरू करें
-
लूप के अंदर arr[i] + arr[j] के रूप में योग की गणना करें और IF sum% 4 ==0 की जाँच करें और फिर गिनती को 1 से बढ़ाएँ।
-
गिनती लौटाएं
-
प्रिंट परिणाम।
कुशल तरीका
-
पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें
-
जोड़े की संख्या को 4 से विभाज्य योग के साथ संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।
-
आकार 4 की एक सरणी बनाएं क्योंकि हमें 4 से विभाज्यता की जांच करनी है।
-
एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, अस्थायी को arr[i]% 4 के रूप में सेट करें और सरणी को ++check[temp]
के रूप में पूर्व-वृद्धि करें -
गिनती को new_arr[0] * (new_arr[0] - 1)/2
. के रूप में सेट करें -
गिनती को गिनती के रूप में सेट करें + new_arr[2] * (new_arr[2] - 1)/2
-
गिनती को गिनती के रूप में सेट करें + new_arr[1] * new_arr[3]
-
गिनती लौटाएं
-
परिणाम प्रिंट करें।
उदाहरण (बेवकूफ दृष्टिकोण)
#include <iostream> using namespace std; int pair_4(int arr[], int size){ int count = 0; for(int i = 0 ;i <size ; i++){ for(int j = i+1; j<size; j++){ int sum = arr[i] + arr[j]; if(sum % 4 == 0){ count++; } } } return count; } int main(){ int arr[] = {4, 1, 2, 0, 2}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_4(arr, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count pairs in array whose sum is divisible by 4 are: 2
उदाहरण (कुशल दृष्टिकोण)
#include <iostream> using namespace std; int pair_4(int arr[], int size){ int temp = 0; int count = 0; int check[] = {0, 0, 0, 0}; for (int i = 0; i < size; i++){ temp = arr[i] % 4; ++check[temp]; } count = check[0] * (check[0] - 1) / 2; count = count + check[2] * (check[2] - 1) / 2; count = count + check[1] * check[3]; return count; } int main(){ int arr[] = {4, 1, 2, 0, 2}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_4(arr, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count pairs in array whose sum is divisible by 4 are: 2