Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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 की सॉर्ट विधि का उपयोग करके एक सरणी को सॉर्ट करें।

  • एक पूर्णांक चर घोषित करें और इसे कॉल के साथ functionRearrange_min_sum(arr, size)

    पर सेट करें
  • समारोह के अंदर Rearrange_min_sum(arr, size)

    • एक वेरिएबल बनाएं, मान लें, 'ईवन' और 'ऑड' टाइप वेक्टर जो इंटीजर वेरिएबल को स्टोर करता है।

    • एक चर को अस्थायी और कुल के रूप में घोषित करें और इसे 0 से प्रारंभ करें।

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, जांचें कि क्या मैं आकार/2 से छोटा है, फिर गिरफ्तारी [i] को विषम वेक्टर ELSE पर पुश करें, गिरफ्तारी [i] को भी वेक्टर पर पुश करें

    • इवन.बेगिन (), इवन.एंड () और ग्रेटर().

      . पास करके सॉर्ट विधि को कॉल करें
    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i से भी कम। आकार ()। लूप के अंदर, arr[temp++] से भी[j], arr[temp++] से विषम[j] और टोटल टू टोटल + इवन[j] * ऑड [j]

      सेट करें।
    • कुल वापसी

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

उदाहरण

#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 an array
   sort(arr, arr + size);
   //call function
   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. सी ++ में संख्याओं की एक सरणी के उत्पाद में पहला अंक

    इस ट्यूटोरियल में, हम सीखेंगे कि किसी सरणी के उत्पाद का पहला अंक कैसे खोजा जाए। आइए समस्या को हल करने के लिए चरणों को देखें। ऐरे को इनिशियलाइज़ करें। सरणी में तत्वों का गुणनफल खोजें। परिणाम को 10 से कम होने तक विभाजित करें। सिंगल-डिजिट प्रिंट करें उदाहरण आइए कोड देखें। #include <b

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

    हमें पूर्णांक तत्वों की एक सरणी दी गई है जिसमें डुप्लिकेट मान शामिल हैं और कार्य एक सरणी में मौजूद अलग-अलग तत्वों की आवृत्तियों की गणना करना और परिणाम प्रिंट करना है। इनपुट - 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

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

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