Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में सरणी में अधिकतम उत्पाद चौगुना (आकार 4 का उप-अनुक्रम)

इस समस्या में, हमें एक ऐरे एरर [] दिया जाता है। हमारा कार्य C++ में सरणी में अधिकतम उत्पाद चौगुनी (आकार 4 का उप-अनुक्रम) खोजने के लिए एक प्रोग्राम बनाना है।

कोड विवरण - यहां, हमें एक चौगुनी (आकार 4 का उप-अनुक्रम) खोजने की जरूरत है, ताकि सभी तत्वों का गुणनफल अधिकतम हो।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

arr[] = {4, -2, 5, -6, 8}

आउटपुट

840

स्पष्टीकरण

चौगुनी, (-3, 5, -7, 8) उत्पाद 840 के साथ।

समाधान दृष्टिकोण

किसी समस्या के कई समाधान हो सकते हैं।

एक सरल समाधान सरणी को पार करके प्रत्यक्ष विधि का उपयोग कर रहा है। फिर सरणी में सभी संभावित चौगुनी ढूँढना। उनके उत्पाद को ढूंढना और फिर अधिकतम उत्पाद चौगुनी खोजने के लिए उसकी तुलना करना।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;
int max(int a, int b){
   if(a > b)
      return a;
      return b;
}
int findMaxProdQuad(int arr[], int n){
   int maxProd = 0;
   int prod = 1;
   for (int i = 0; i <= n - 4; i++)
   for (int j = i + 1; j <= n - 3; j++)
   for (int k = j + 1; k <= n - 2; k++)
   for (int l = k + 1; l <= n - 1; l++) {
      prod = arr[i] * arr[j] * arr[k] * arr[l];
      maxProd = max(maxProd, prod);
      prod = 1;
   }
   return maxProd;
}
int main(){
   int arr[] = {4, -2, 5, -6, 8};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum product of quadruple is "<<findMaxProdQuad(arr, n);
   return 0;
}

आउटपुट

Maximum product of quadruple is 480

अधिकतम उत्पाद के साथ चौगुनी खोजने का दूसरा तरीका सरणी के चार अधिकतम तत्वों और सरणी के चार न्यूनतम तत्वों को खोजना है।

मान लें कि mx1, mx2, mx3, mx4 पहली चार अधिकतम संख्याएँ हैं। और mn1, mn2, mn3, mn4 सरणी की पहली चार न्यूनतम संख्याएँ हैं। फिर

. के मान ज्ञात कीजिए
1. mx1 * mx2 * mx3 * mx4
2. mn1 * mn2 * mn3 * mn4
3. mx1 * mx2 * mn1 * mn2

और इन तीन उत्पाद मूल्यों में से अधिकतम लौटाएं जो अधिकतम उत्पाद चौगुना देगा। और सभी मामलों पर विचार किया जाता है।

हमारे एल्गोरिथम के कार्यान्वयन को दिखाने के लिए कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
int max(int a, int b){
   if(a > b)
      return a;
      return b;
}
int findMaxProdQuad(int arr[], int n) {
   int mx1 = -1000, mx2 = -1000, mx3 = -10000, mx4 = -1000;
   int mn1 = 1000, mn2 = 1000, mn3 = 1000, mn4 = 1000;
   for (int i = 0; i < n; i++) {
      if(arr[i] < mn1){
         mn4 = mn3;
         mn3 = mn2;
         mn2 = mn1;
         mn1 = arr[i];
      }
      else if(arr[i] < mn2){
         mn4 = mn3;
         mn3 = mn2;
         mn2 = arr[i];
      }
      else if(arr[i] < mn3){
         mn4 = mn3;
         mn3 = arr[i];
      }
      else if(arr[i] < mn4){
         mn4 = arr[i];
      }
      if(arr[i] > mx1){
         mx4 = mx3;
         mx3 = mx2;
         mx2 = mx1;
         mx1 = arr[i];
      }
      else if(arr[i] > mx2){
         mx4 = mx3;
         mx3 = mx2;
         mx2 = arr[i];
      }
      else if(arr[i] > mx3){
         mx4 = mx3;
         mx3 = arr[i];
      }
      else if(arr[i] > mx4){
         mx4 = arr[i];
      }
   }
   int maxVal = max ((mx1 * mx2 * mx3 * mx4), (mn1 * mn2 * mn3 * mn4));
   maxVal = max(maxVal, (mx1 * mx2 * mn1 * mn2));
   return maxVal;
}
int main() {
   int arr[] = {4, -2, 5, -6, 8};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum product of quadruple is "<<findMaxProdQuad(arr, n);
   return 0;
}

आउटपुट

Maximum product of quadruple is 480

सरणी को सॉर्ट करने का एक और तरीका हो सकता है। फिर चार अधिकतम और चार न्यूनतम क्रमशः सरणी का अंत और प्रारंभ होगा। फिर अधिकतम और न्यूनतम के अधिकतम तीन संयोजनों को ढूंढकर उपरोक्त समाधान के रूप में हल करें।

हमारे दृष्टिकोण के कार्यान्वयन को दिखाने के लिए कार्यक्रम

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int findMaxProdQuad(int arr[], int n){
   sort(arr, arr + n);
   int maxVal = max((arr[n-1] * arr[n-2] * arr[n-3] * arr[n-4]), (arr[0] *
   arr[1] * arr[2] * arr[3]));
   maxVal = max(maxVal, (arr[n-1] * arr[n-2] * arr[0] * arr[1]));
   return maxVal;
}
int main(){
   int arr[] = {4, -2, 5, -6, 8};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum product of quadruple is "<<findMaxProdQuad(arr, n);
   return 0;
}

आउटपुट

Maximum product of quadruple is 480

  1. C++ में किसी सरणी में सभी अभाज्य संख्याओं का गुणनफल

    कुछ तत्वों के साथ एक पूर्णांक सरणी arr[] को देखते हुए, कार्य उस संख्याओं की सभी अभाज्य संख्याओं का गुणनफल खोजना है। अभाज्य संख्याएँ वे संख्याएँ होती हैं जिन्हें या तो 1 से या स्वयं संख्या से विभाजित किया जाता है, या एक अभाज्य संख्या एक ऐसी संख्या होती है जो 1 और स्वयं संख्या को छोड़कर किसी अन्य संख

  1. सी ++ में एक ऐरे में गैर-दोहराए जाने वाले (विशिष्ट) तत्वों का उत्पाद

    हमें दोहराए जाने वाले या डुप्लिकेट तत्वों की एक सरणी के साथ दिया गया है और कार्य उन सभी तत्वों के उत्पाद को ढूंढना है जो दिए गए सरणी में गैर-दोहराव या विशिष्ट हैं और परिणाम प्रदर्शित करते हैं। उदाहरण Input-: arr[] = {2, 1, 1, 2, 3, 4, 5, 5 } Output-: 120 Explanation-: Since 1, 2 and 5 are repeating

  1. एसटीएल का उपयोग कर सी ++ में ऐरे उत्पाद

    यह ऐरे उत्पाद का पता लगाने के लिए C++ प्रोग्राम का एक उदाहरण है। एल्गोरिदम Begin Initialize the values of array. Call used defined function accumulate to return the product of array. Print the solution. End. उदाहरण कोड #include <iostream> #include <numeric> using namespace std;