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

केवल सी ++ में सरणी तत्वों का उपयोग करके एक सरणी को बराबर करें

इस समस्या में, हमें n तत्वों की एक सरणी दी गई है। हमारा काम केवल तत्वों का उपयोग करके एक सरणी को बराबर करने के लिए संचालन की संख्या की गणना करने के लिए एक प्रोग्राम बनाना है।

हमें सरणी के सभी तत्वों को समान बनाने के लिए किए जाने वाले जोड़ या घटाव संचालन की संख्या की गणना करने की आवश्यकता है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: गिरफ्तारी [] ={4, 0, 3, 1, 2}

आउटपुट: 3

स्पष्टीकरण:

बराबर मान 2 होगा।

कुल योग समान होगा। हम arr[3] पर मान से 1 लेंगे और फिर इसे arr[1] पर मान में जोड़ेंगे।

फिर हम arr[0] पर मान से 2 लेंगे और इसे arr[1] पर मान में जोड़ देंगे।

समाधान दृष्टिकोण:

समस्या का एक सरल समाधान यह है कि सरणी से तत्व को उन तत्वों के रूप में खोजा जाए जो सरणी के लिए समान तत्व होंगे।

हम जांच करेंगे कि क्या औसत का पता लगाकर ऑपरेशन संभव है, अगर यह पूर्णांक है तो समीकरण संभव है अन्यथा नहीं।

यदि समीकरण संभव है, तो हम आवश्यक संचालन की संख्या की गणना करेंगे और फिर इसे वापस कर देंगे। ऑपरेशन की संख्या औसत के साथ सभी संख्याओं के पूर्ण अंतर के योग के आधे के बराबर है।

एल्गोरिदम:

चरण 1: सरणी के सभी तत्वों का औसत ज्ञात कीजिए।

चरण 2: यदि औसत एक पूर्णांक नहीं है, तो वापसी -1, यह दर्शाता है कि समीकरण संभव नहीं है।

चरण 3: अन्यथा, सभी तत्वों और औसत के बीच पूर्ण अंतर ज्ञात कीजिए।

चरण 4: औसत मूल्य का आधा लौटाएं।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

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

int calcEqualisedOperations(int arr[], int n) {
   
   int sum = 0, average, operations = 0;
   for (int i = 0; i < n; i++)
      sum += arr[i];
   if (sum % n != 0)
      return -1;
   average = sum/n;
   for (int i = 0; i < n; i++)
      operations += ( abs(arr[i] - average) / 2 );

   return operations;
}

int main() {

   int arr[] = { 5, 3, 2, 6 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Operations required to equalize an array using array elements is "<<calcEqualisedOperations(arr, n);
   return 0;
}

आउटपुट -

Operations required to equalize an array using array elements is 2

  1. सी++ में पॉइंटर अंकगणित का उपयोग करके सरणी का योग

    यह पॉइंटर का उपयोग करके सरणी तत्वों के योग का पता लगाने के लिए एक C++ प्रोग्राम है। एल्गोरिदम Begin    Initialize the array elements with values from user input.    Initialize s = 0    Loop for i = 0 to       s = s + *(ptr + i)    Print the sum

  1. सी ++ प्रोग्राम हीप सॉर्ट एल्गोरिथम का उपयोग करके 10 तत्वों की एक सरणी को सॉर्ट करने के लिए

    हीप सॉर्ट बाइनरी हीप डेटा संरचना पर आधारित है। बाइनरी हीप में पैरेंट नोड के चाइल्ड नोड्स अधिकतम हीप के मामले में उससे छोटे या उसके बराबर होते हैं, और पैरेंट नोड के चाइल्ड नोड्स मिन हीप के मामले में उससे बड़े या उसके बराबर होते हैं। हीप सॉर्ट में सभी चरणों की व्याख्या करने वाला एक उदाहरण इस प्रकार ह

  1. सी ++ प्रोग्राम पॉइंटर का उपयोग करके एक ऐरे के तत्वों तक पहुंचने के लिए

    पॉइंटर्स मेमोरी लोकेशन या वेरिएबल्स के एड्रेस को स्टोर करते हैं। दूसरे शब्दों में, पॉइंटर्स एक मेमोरी लोकेशन को रेफर करते हैं और उस मेमोरी लोकेशन पर स्टोर किए गए वैल्यू को प्राप्त करना पॉइंटर को डीरेफ्रेंसिंग के रूप में जाना जाता है। एक प्रोग्राम जो किसी सरणी के एक तत्व तक पहुँचने के लिए पॉइंटर्स क