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

किसी भी बीजीय व्यंजक का अधिकतम मान ज्ञात करने के लिए C++ प्रोग्राम

यह किसी बीजीय व्यंजक का अधिकतम मान ज्ञात करने के लिए एक C++ प्रोग्राम है। (x1 + x2 + x3 +... + xa) * (y1 + y2 + ... + yb) और (a + b) का बीजीय व्यंजक ) पूर्णांक दिए गए हैं। एक संख्या और शेष बी संख्याओं के सभी संभावित संयोजनों पर विचार करें और उनके मूल्यों की गणना करें, जिससे अधिकतम मूल्य प्राप्त किया जा सके।

एल्गोरिदम

Begin
   function MaxValue() :
   Arguments:
   a[]=array which store the elements.
   x, y=integers.
   Body of the function:
   1) Find the sum of array elements.
   2) Initialize s = 0.
   3) Make for loop i = 0 to (x + y-1) Shift the integers by 25 so that they become positive .
   4) Declare a boolean array p[i][j] that represents true if sum j can be reachable by choosing i numbers.
   5) Initialization of the array.
   6) Make for loop i = 0 to (x + y)-1 to determine If p[i][j] is true, that means it is possible to select i numbers from (x + y) numbers to sum upto j.
   7) Initialize max_value = -INF.
   8) Make for loop i = 0 to (MAX * MAX + 1)-1 to Check if a particular sum can be reachable by choosing n numbers.
   if (p[x][i])
      Get the actual sum as we shifted the numbers by 25 to avoid negative indexing in array .
   9) Print the max_value.
End

उदाहरण

#include <bits/stdc++.h>
using namespace std;
#define INF 1e9
#define MAX 25
int MaxValue(int a[], int x, int y) {
   int s= 0;
   for (int i = 0; i < (x + y); i++) {
      s+= a[i];
      a[i] += 25;
   }
   bool p[MAX+1][MAX * MAX + 1];
   //Initialize the array to 01.
   memset(p, 0, sizeof(p));
   p[0][0] = 1;
   for (int i = 0; i < (x + y); i++) {
      //k can be at max x because the
      // left expression has x numbers
      for (int k = min(x, i + 1); k >= 1; k--) {
         for (int j = 0; j < MAX * MAX + 1; j++) {
            if (p[k - 1][j])
            p[k][j + a[i]] = 1;
         }
      }
   }
   int max_value = -INF;
   for (int i = 0; i < MAX * MAX + 1; i++) {
      if (p[x][i]) {
         int tmp = i - 25 * x;
         max_value = max(max_value, tmp * (s - tmp));
      }
   }
   cout << "Maximum Value: " << max_value ;
}
int main() {
   int x = 2, y = 2; //input is taken of
   x and y.
   int ar[] = { 7,6,4,3 };
   MaxValue(ar, x, y);
   return 0;
}

आउटपुट

Maximum Value: 100

  1. एलसीएम खोजने के लिए सी ++ प्रोग्राम

    दो संख्याओं का अल्पतम समापवर्तक (LCM) वह छोटी से छोटी संख्या है जो दोनों का गुणज है। उदाहरण के लिए:मान लें कि हमारे पास निम्नलिखित दो संख्याएं हैं:15 और 9. 15 = 5 * 3 9 = 3 * 3 तो, 15 और 9 का एलसीएम 45 है। दो संख्याओं का LCM ज्ञात करने का कार्यक्रम इस प्रकार दिया गया है - उदाहरण #include <iost

  1. सी ++ प्रोग्राम जीसीडी खोजने के लिए

    दो संख्याओं का सबसे बड़ा सामान्य भाजक (GCD) उन दोनों को विभाजित करने वाली सबसे बड़ी संख्या है। उदाहरण के लिए:मान लें कि हमारे पास 45 और 27 दो संख्याएँ हैं। 45 = 5 * 3 * 3 27 = 3 * 3 * 3 तो, 45 और 27 का GCD 9 है। दो संख्याओं का GCD ज्ञात करने का कार्यक्रम इस प्रकार दिया गया है। उदाहरण #include <

  1. पायथन में अधिकतम इरेज़र वैल्यू खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास nums नामक एक सरणी है (केवल सकारात्मक मानों के साथ) और हम अद्वितीय तत्वों वाले एक सबएरे को मिटाना चाहते हैं। हमें वह स्कोर मिलेगा जो सबएरे तत्वों का योग है। हमें ठीक एक उप-सरणी को मिटाकर अधिकतम अंक प्राप्त करना होगा। इसलिए, यदि इनपुट nums =[6,3,2,3,6,3,2,3,6] की तरह है, तो आउट