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

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


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

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

उदाहरण से समझते हैं:

इनपुट: arr[] = {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++ में पॉइंटर अंकगणित का उपयोग करके ऐरे का योग

    यह पॉइंटर का उपयोग करके ऐरे तत्वों का योग ज्ञात करने के लिए एक C++ प्रोग्राम है। एल्गोरिदम Begin उपयोगकर्ता इनपुट से मानों के साथ ऐरे तत्वों को इनिशियलाइज़ करें। s = 0 इनिशियलाइज़ करें i = 0 से लूप s = s + *(ptr + i) चर s में योग मान प्रिंट करें। End उदाहरण कोड #include &l

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

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

  1. - C++ में पॉइंटर का उपयोग करके सरणी के एलिमेंट्स एक्सेस करने का प्रोग्राम

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