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

C++ में किसी संख्या के चार गुणनखंडों के गुणनफल को अधिकतम करें

कार्य को देखते हुए अधिकतम उत्पाद की गणना करना है जो किसी दिए गए नंबर एन के चार कारकों ए, बी, सी, डी से प्राप्त किया जा सकता है, शर्त को देखते हुए -

चार कारकों का योग संख्या N के बराबर होना चाहिए, यानी N=A+B+C+D.

इनपुट -एन=10

आउटपुट -20

स्पष्टीकरण − 10 के गुणनखंड हैं:1, 2, 5, 10.

अधिकतम उत्पाद 5*2*2*1=20 गुणा करके प्राप्त किया जा सकता है और यह दी गई शर्त को भी पूरा करता है, अर्थात 5+2+2+1=10।

इनपुट -एन=16

आउटपुट − 256

स्पष्टीकरण − 16 के गुणनखंड हैं:1, 2, 4, 8, 16.

अधिकतम उत्पाद 4*4*4*4=256 गुणा करके प्राप्त किया जा सकता है और यह दी गई शर्त को भी पूरा करता है, अर्थात 4+4+4+4=16।

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • दिए गए नंबर के फ़ैक्टर को स्टोर करने के लिए एक ऐरे फ़ैक्टर [] टाइप करें और एरे के आकार का ट्रैक रखने के लिए एक वैरिएबल K=0 टाइप इंट बनाएं।

  • दी गई संख्याओं के गुणनखंड ज्ञात करने के लिए FindFactors() फ़ंक्शन बनाएँ।

  • i=1 से लूप; मैं*मैं<=एन; मैं++

  • लूप के अंदर अगर (N%i ==0) यह जांचने के लिए सेट करें कि मैं एक कारक हूं या नहीं।

  • यदि i एक गुणनखंड है, तो जाँचें कि क्या (N/I ==i)। यदि हाँ तो i को फ़ैक्टर में डालें [] अन्यथा N/i और i दोनों को फ़ैक्टर में पास करें []।

  • कारकों में से अधिकतम उत्पाद खोजने के लिए फ़ंक्शन उत्पाद () बनाएं।

  • int उत्पाद =0 प्रारंभ करें; और आकार=के+1;

  • चार नए नेस्टेड लूप शुरू करें और उन्हें 'आकार' तक चलाएं।

  • लूप के अंदर, इनिशियलाइज़ करें int sum=Factors[i] + Factors[] + Factors[k] + Factors[l];

  • जांचें कि क्या (योग ==एन) और यदि ऐसा है तो समर्थक =कारक [i] * कारक [जे] * कारक [के] * कारक [एल];

    प्रारंभ करें
  • फिर जांचें कि क्या (प्रो> उत्पाद), यदि ऐसा है तो उत्पाद =प्रो डालें;

  • उत्पाद लौटाएं

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//Array to store the factors
int Factors[30];
int K=0;
//Function to find out the factors
int FindFactors(int N){
   //Looping until i reaches the sqrt(N)
   for (int i = 1; i * i <= N; i++){
      if (N % i == 0){
         /* if both the factors are same then only one will be inserted*/
         if ((N / i) == i){
            Factors[K]=i;
            K++;
         }
         else{
            //Inserting 1st factor in array
            Factors[K]=N/i;
            K++;
            //Inserting 2st factor in array
            Factors[K]=i;
            K++;
         }
      }
   }
}
// Function to find the maximum product
int Product(int N){
   int product = 0;
   int size = K+1;
   for (int i = 0; i < size; i++)
      for (int j = 0; j < size; j++)
         for (int k = 0; k < size; k++)
            for (int l = 0; l < size; l++){
               //Adding each set of factors
               int sum = Factors[i] + Factors[j] + Factors[k] + Factors[l];
               //Checking if the sum is equal to N
               if (sum == N){
                  //Multiplying the factors
                  int pro = Factors[i] * Factors[j] * Factors[k] * Factors[l];
                  //Replacing the value of product if a larger value is found
                  if(pro > product)
                     product = pro;
               }
            }
   return product;
}
//Main function
int main(){
   int N = 10;
   //Calling function to find factors of N
   FindFactors(N);
   //Calling function to find the maximum product
   cout<<Product(N);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -

Maximum Profit: 20

  1. C++ में बिटवाइज़ या किसी ऐरे को अधिकतम करें

    समस्या कथन एन पूर्णांकों की एक सरणी को देखते हुए। बिटवाइज़ या सरणी के सभी तत्वों को एक कार्य करके अधिकतम किया जाना है। कार्य किसी दिए गए पूर्णांक x के साथ सरणी के किसी भी तत्व को अधिकतम k बार गुणा करना है यदि इनपुट ऐरे {4, 3, 6, 1}, k =2 और x =3 है तो अधिकतम मान प्राप्त किया जा सकता है 55 एल्गोरिद

  1. सी ++ में एक सबरे को फ़्लिप करके 0 की संख्या को अधिकतम करें

    समस्या कथन एक बाइनरी सरणी को देखते हुए, एक सरणी में शून्य की अधिकतम संख्या ज्ञात करें जिसमें एक सबरे के एक फ्लिप की अनुमति है। एक फ्लिप ऑपरेशन सभी 0s से 1s और 1s से 0s तक स्विच करता है अगर arr1={1, 1, 0, 0, 0, 0, 0} यदि हम पहले 2 1 से 0 तक पलटते हैं, तो हम आकार 7 की उप-सरणी इस प्रकार प्राप्त कर स

  1. C++ में अधिकतम उत्पाद चौगुनी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक पूर्णांक सरणी है। हमें सरणी में चौगुनी का अधिकतम गुणनफल खोजना है। तो अगर सरणी [3, 5, 20, 6, 10] की तरह है, तो अंतिम उत्पाद 6000 है, और चौगुनी में तत्व 10, 5, 6, 20 है इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सरणी को आरोही क्रम में क्रमबद्ध करें मान