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

C++ में दिए गए एक्सप्रेशन का मान अधिकतम करना


समस्या कथन

तीन गैर-शून्य पूर्णांक a, b और c दिए गए हैं। कार्य उनके बीच किसी भी क्रम में जोड़ और गुणा के चिन्ह लगाकर अधिकतम संभव मान ढूंढना है।

कृपया ध्यान दें कि पूर्णांकों का पुनर्व्यवस्थित करना अनुमत है लेकिन जोड़ और गुणा चिन्ह का उपयोग एक बार किया जाना चाहिए।

यदि a = 1, b = 3 और c = 5 तो अधिकतम मान 20 होगा:

(1 + 3) * 5 = 20

एल्गोरिदम

1. यदि सभी संख्याएं धनात्मक हैं, तो दो छोटी संख्याओं को जोड़ें और परिणाम को बड़ी संख्या से गुणा करें।
2. यदि केवल दो संख्याएं धनात्मक हैं, तो दो धनात्मक संख्याओं को गुणा करें और शेष संख्या जोड़ें।
3. यदि केवल एक संख्या धनात्मक है, तो दो ऋणात्मक संख्याओं को गुणा करें और शेष संख्या जोड़ें।
4. यदि सभी संख्याएं ऋणात्मक हैं, तो दो सबसे बड़ी पूर्णांकों को जोड़ें और उन्हें शेष संख्या से गुणा करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int getMaximumResult(int a, int b, int c) {
    int negativeCnt = 0;
    int sum = a + b + c;
    int mul = a * b * c;
    int largest = max(a, max(b, c));
    int smallest = min(a, min(b, c));
    if (a < 0) ++negativeCnt;
    if (b < 0) ++negativeCnt;
    if (c < 0) ++negativeCnt;
    if (negativeCnt == 0) {
        return (sum - largest) * largest;
    } else if (negativeCnt == 1) {
        return (mul / smallest) + smallest;
    } else if (negativeCnt == 2) {
        return (mul / largest) + largest;
    } else if (negativeCnt == 3) {
        return (sum - smallest) * smallest;
    }
}

int main() {
    int a = 1, b = 3, c = 5;
    cout << "Maximum value = " << getMaximumResult(a, b, c) << endl;
    return 0;
}

आउटपुट

Maximum value = 20
  1. ग्रिड में दी गई दिशा में संभावित चालों की गणना करने का C++ प्रोग्राम ग्रिड में दी गई दिशा में संभावित चालों की गणना करने का C++ प्रोग्राम

    समस्या विवरण हमें n x m आकार का ग्रिड और प्रारंभिक बिंदु (x, y) दिया गया है। साथ ही चालों/कदमों के जोड़े दिए गए हैं जैसे (1,1), (2,2) आदि। प्रत्येक जोड़ा x और y अक्ष में कदम की इकाइयों को दर्शाता है। लक्ष्य ग्रिड की सीमाओं [1,n] x [1,m] के भीतर ली जा सकने वाली कुल चालों की संख्या ज्ञात करना है। उदा

  1. - C++ प्रोग्राम: क्रमबद्ध सरणी में दिए गए मान के k निकटतम तत्व ज्ञात करना

    मान लें हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमारे पास दो अन्य मान X और k हैं। हमारा कार्य सरणी A से X के k निकटतम तत्वों की संख्या ज्ञात करना है। यदि तत्व X सरणी में मौजूद है, तो यह आउटपुट में नहीं दिखाया जाएगा। यदि A = [12, 16, 22, 30, 35, 39, 42, 45, 48, 50, 53, 55, 56] और X = 35, k = 4 है।

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन