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

x + y + z के मान को इस प्रकार अधिकतम करें कि C++ . में ax + by + cz =n हो

हमें पूर्णांक a,b,c,n दिए गए हैं। लक्ष्य x, y और z के योग को इस प्रकार अधिकतम करना है किax+by+cz=n.

उपरोक्त सूत्र से,

cz=n-(ax+by)
z= (n- (ax+by))/c

x और y को नियत करके, प्रत्येक x, y और z के लिए उपरोक्त सूत्र का उपयोग करके z की गणना करें। योग की गणना करें और प्राप्त की गई अधिकतम राशि को संग्रहीत करें।

इनपुट

n = 6, a = 3, b = 4, c = 5;

आउटपुट

maximum x+y+z is 2.

स्पष्टीकरण − x=2, y=0 और z=0 ax+by+cz=n के लिए।

3*2+0*4+0*5=6 =n

इनपुट

n = 4, a = 3, b = 1, c = 2;

आउटपुट

maximum x+y+z=4

स्पष्टीकरण − x=0, y=4 और z=4 ax+by+cz=n के लिए।

0*3+4*1+0*2=4 =n

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • पूर्णांक a, b, c, और n का उपयोग व्यंजक ax+by+cz=n के लिए किया जाता है।

  • फ़ंक्शन मैक्सिमाइज़ (,int n,int a,int b,int c) इनपुट के रूप में a, b, c और n लेता है और x, y और z का अधिकतम संभव योग देता है जैसे कि ax+by+cz=n.

  • (i=0;i<=n;i+=a), भी

    . के लिए सभी संभव कुल्हाड़ी मान लेना
  • (j=0;j<=n;j+=b),

    . के लिए हर संभव मान लेना
  • z=(n- (ax+by))/c की गणना करें।

  • अब x=i/a और y=j/b। x+y+z की गणना करें और टेम्परेचर में स्टोर करें।

  • अगर temp> =maxx अब तक, maxx अपडेट करें।

  • वांछित योग के रूप में अधिकतम लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int maximize(int n, int a, int b, int c){
   int maxx = 0;
   // i for possible values of ax
   for (int i = 0; i <= n; i += a)
      // j for possible values of by
   for (int j = 0; j <= n - i; j += b) {
      float z = (n - (i + j)) / c;
      // If z is an integer
      if (floor(z) == ceil(z)) {
         int x = i / a;
         int y = j / b;
         int temp=x+y+z;
         if(temp>=maxx)
            maxx=temp;
      }
   }
   return maxx;
}
int main(){
   int n = 6, a = 3, b = 4, c = 5;
   cout <<"Maximized the value of x + y + z :"<<maximize(n, a, b, c);
   return 0;
}

आउटपुट

Maximized the value of x + y + z :2

  1. सरणी में सबसे बड़ा d इस प्रकार ज्ञात कीजिए कि a + b + c =d C++ . में

    मान लीजिए कि हमारे पास पूर्णांकों का एक समूह है। हमें एक संख्या d ढूंढनी है, जहां d =a + b + c, और हमें अधिकतम करना है (a + b + c), सभी a, b, c, और d सेट में मौजूद हैं। सेट में कम से कम एक तत्व और अधिकतम 1000 तत्व होंगे। प्रत्येक तत्व एक परिमित संख्या होगी। यदि समुच्चय {2, 3, 5, 7, 12} है, तो 12 सबस

  1. x का अधिकतम मान इस प्रकार ज्ञात कीजिए कि n! % (k^x) =0 C++ . में

    मान लीजिए हमारे पास दो पूर्णांक n और k हैं। हमें x का अधिकतम मान इस प्रकार ज्ञात करना है कि n! mod (k^x) =0. तो जब n =5, और k =2, तो आउटपुट 3 होगा। जैसे n! =120, अब x के विभिन्न मानों के लिए, यह होगा - 120 मॉड 2^0 =0, 120 मॉड 2^1 =0, 120 मॉड 2^2 =0, 120 मॉड 2^3 =0, 120 मॉड 2^4 =8, 120 मॉड 2^5 =24,

  1. जोड़ा जाने वाला न्यूनतम मान ज्ञात करें ताकि सरणी C++ में संतुलित हो जाए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। और n सम है। हमें उस मान को खोजना होगा जो सरणी को संतुलित करने के लिए आवश्यक है। चूंकि सरणी का आकार सम है, तो हम दो भाग बना सकते हैं। बाएँ आधे का योग और दाएँ आधे का योग संतुलित होना चाहिए। तो अगर सरणी ए =[1, 2, 3, 2, 5, 3] की तरह है तो बाएं आधे का