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

C++ में x + y + z का मान अधिकतम करें जैसे कि 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 को निश्चित करके, उपरोक्त सूत्र का उपयोग करके z की गणना करें, प्रत्येक x, y और z के लिए। योग की गणना करें और अब तक प्राप्त अधिकतम ऐसे योग को संग्रहीत करें।

इनपुट

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

आउटपुट

अधिकतम x+y+z है 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;

आउटपुट

अधिकतम x+y+z=4

व्याख्या: x=0, y=4 और z=0 के लिए ax+by+cz=n।

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

प्रयुक्त दृष्टिकोण

  • अभिव्यक्ति ax+by+cz=n के लिए पूर्णांक a,b,c,और n उपयोग किए जाते हैं।
  • फ़ंक्शन maximize(int n,int a,int b,int c) a, b, c और n को इनपुट के रूप में लेता है और x, y और z के अधिकतम संभावित योग को लौटाता है जैसे कि ax+by+cz=n।
  • सभी संभावित ax मान लें, for(i=0;i<=n;i+=a), साथ ही
  • सभी संभावित by मान लें for(j=0;j<=n;j+=b),
  • z= (n- (ax+by))/c की गणना करें।
  • अब x=i/a और y=j/b। x+y+z की गणना करें और temp में संग्रहीत करें।
  • यदि temp>=maxx अब तक, maxx अपडेट करें।
  • वांछित योग के रूप में maxx लौटाएं।

उदाहरण कोड

#include <bits/stdc++.h> using namespace std; int maximize(int n, int a, int b, int c){ int maxx = 0; // i ax के संभावित मानों के लिए for (int i = 0; i <= n; i += a) // j by के संभावित मानों के लिए for (int j = 0; j <= n - i; j += b) { float z = (n - (i + j)) / c; // यदि z एक पूर्णांक है 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 <<"x + y + z का अधिकतम मान: "<<maximize(n, a, b, c); return 0; }

आउटपुट

x + y + z का अधिकतम मान: 2

  1. - C++ में ऐरे में सबसे बड़ा d ढूंढें जैसे कि a + b + c = d

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

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

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

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

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