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

C++ में सरणी को पुनर्व्यवस्थित करें ताकि लगातार युग्म तत्वों के गुणनफल का योग न्यूनतम हो


हमें एक धनात्मक पूर्णांक प्रकार की सरणी दी गई है, मान लीजिए, arr[] किसी भी दिए गए आकार की। कार्य है सरणी को इस तरह पुनर्व्यवस्थित करना कि जब हम एक तत्व को उसके वैकल्पिक तत्व से गुणा करें और फिर सभी परिणाम तत्वों को जोड़ें तो यह न्यूनतम योग लौटाए।

विभिन्न इनपुट-आउटपुट परिदृश्य

इनपुट - int arr[] = {2, 5, 1, 7, 5, 0, 1, 0}

आउटपुट - लगातार युग्म तत्वों के गुणनफल का योग यानी 7 न्यूनतम करने के लिए सरणी का पुनर्व्यवस्थापन है: 7 0 5 0 5 1 2 1

व्याख्या - हमें आकार 8 की एक पूर्णांक सरणी दी गई है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे यानी 7 0 5 0 5 1 2 1। हम जांचेंगे कि क्या यह न्यूनतम योग यानी 7 * 0 + 5 * 0 + 5 * 1 + 2 * 1 = 0 + 0 + 5 + 2 = 7 लौटाता है।

इनपुट - int arr[] = {1, 3, 7, 2, 4, 3}

आउटपुट - लगातार युग्म तत्वों के गुणनफल का योग यानी 24 न्यूनतम करने के लिए सरणी का पुनर्व्यवस्थापन है: 7 1 4 2 3 3

व्याख्या - हमें आकार 6 की एक पूर्णांक सरणी दी गई है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे यानी 7 1 4 2 3 3। हम जांचेंगे कि क्या यह न्यूनतम योग यानी 7 * 1 + 4 * 2 + 3 * 3 = 7 + 8 + 9 = 24 लौटाता है।

उपयोग किया गया दृष्टिकोण

  • पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और सरणी का आकार गणना करें।

  • C++ STL की सॉर्ट विधि का उपयोग करके सरणी को क्रमबद्ध करें सरणी और सरणी के आकार को सॉर्ट फ़ंक्शन में पास करके।

  • एक पूर्णांक चर घोषित करें और इसे फ़ंक्शन Rearrange_min_sum(arr, size) के कॉल से सेट करें

  • फ़ंक्शन Rearrange_min_sum(arr, size) के अंदर

    • 'even' और 'odd' नामक दो चर बनाएं जो पूर्णांक चर संग्रहीत करने वाले वेक्टर के प्रकार के हैं।

    • temp और total नामक चर घोषित करें और इसे 0 से आरंभ करें।

    • i को 0 से size से कम होने तक FOR लूप शुरू करें। लूप के अंदर, जांचें यदि i size/2 से कम है तो arr[i] को odd वेक्टर में पुश करें अन्यथा, arr[i] को even वेक्टर में पुश करें

    • even.begin(), even.end() और greater<int>() को पास करके सॉर्ट विधि को कॉल करें।

    • j को 0 से even.size() से कम होने तक FOR लूप शुरू करें। लूप के अंदर, arr[temp++] को even[j], arr[temp++] को odd[j] और total को total + even[j] * odd[j] सेट करें

    • total लौटाएं

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h> using namespace std; int Rearrange_min_sum(int arr[], int size){    vector<int> even, odd;    int temp = 0;    int total = 0;    for(int i = 0; i < size; i++){       if (i < size/2){          odd.push_back(arr[i]);       }       else{          even.push_back(arr[i]);       }    }    sort(even.begin(), even.end(), greater<int>());    for(int j = 0; j < even.size(); j++){       arr[temp++] = even[j];       arr[temp++] = odd[j];       total += even[j] * odd[j];    }    return total; } int main(){    int arr[] = { 2, 5, 1, 7, 5, 0, 1, 0};    int size = sizeof(arr)/sizeof(arr[0]);    //सरणी क्रमबद्ध करें    sort(arr, arr + size);    //फ़ंक्शन कॉल करें    int total = Rearrange_min_sum(arr, size);    cout<<"Rearrangement of an array to minimize sum i.e. "<<total<<" of product of consecutive pair elements is: ";    for(int i = 0; i < size; i++){       cout << arr[i] << " ";    }    return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

Rearrangement of an array to minimize sum i.e. 7 of product of consecutive pair elements is: 7 0 5 0 5 1 2 1

  1. - C++ में सरणी के गुणनफल का पहला अंक ढूंढना

    परिचय इस ट्यूटोरियल में हम सीखेंगे कि सरणी (array) के तत्वों के गुणनफल (product) का पहला अंक कैसे ढूंढा जाता है। समस्या समाधान के चरण सरणी को इनिशियलाइज़ करें। सरणी में तत्वों का गुणनफल ढूंढें। परिणाम को तब तक विभाजित करें जब तक यह 10 से कम न हो जाए। एकल अंक प्रिंट करें। उदाहरण

  1. - C++ में सरणी तत्वों की आवृत्ति गणना

    हमें पूर्णांक तत्वों की एक सरणी दी गई है जिसमें डुप्लिकेट मान हैं और कार्य सरणी में मौजूद विशिष्ट तत्वों की आवृत्तियों की गणना करना और परिणाम प्रिंट करना है। इनपुट - int arr[] = {1, 1, 2, 3, 4, 1, 2, 3} आउटपुट - frequency of 1 is: 3 frequency of 2 is: 2 frequency of 3 is: 2 Frequency of 4 is: 1 उ

  1. C++ में ऐरे में सभी अभाज्य संख्याओं का गुणनफल C++ में ऐरे में सभी अभाज्य संख्याओं का गुणनफल

    कुछ एलिमेंट्स के साथ एक इंटीजर ऐरे arr[] दिया गया है, कार्य उस ऐरे की सभी अभाज्य संख्याओं का गुणनफल निकालना है। अभाज्य संख्याएं वे संख्याएं होती हैं जो या तो 1 से विभाज्य होती हैं या स्वयं संख्या से, या एक अभाज्य संख्या वह संख्या है जो 1 और स्वयं संख्या को छोड़कर किसी अन्य संख्या से विभाज्य नहीं ह