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

C++ में सरणी का संतुलन सूचकांक (Equilibrium Index)


इस समस्या में, हमें एक सरणी arr[] दी गई है जिसमें n पूर्णांक मान होते हैं। हमारा कार्य सरणी के संतुलन सूचकांक (equilibrium index) को खोजने के लिए एक प्रोग्राम बनाना है।

संतुलन सूचकांक वह सूचकांक है जिस पर सूचकांक से पहले के सभी तत्वों का योग सूचकांक के बाद के सभी तत्वों के योग के बराबर होता है।

आकार n की सरणी arr[] के लिए, संतुलन सूचकांक e ऐसा है कि:

sum(arr[0… e-1]) = sum(arr[e+1… n-1])

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

इनपुट: arr[] = {5, 1, 2, 8, 3, 4, 1}

आउटपुट: 3

व्याख्या:

arr[0] + arr[1] + arr[2] = arr[4] + arr[5] + arr[6]

=> 5 + 1 + 2 = 3 + 4 + 1

=> 8 = 8

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

एक सरल दृष्टिकोण तत्व को ढूंढकर होगा कि क्या सरणी का कोई तत्व संतुलन संख्या हो सकता है।

इसके लिए हम नेस्टेड लूप्स का उपयोग करेंगे। बाहरी लूप सरणी के तत्वों पर पुनरावृति करेगा। और आंतरिक लूप जांचेगा कि क्या सरणी का कोई तत्व संतुलन संख्या बन सकता है या नहीं।

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

उदाहरण

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

int findEquilibriumIndex(int arr[], int n) { 
    int prevSum, nextSum; 
    for (int i = 0; i < n; ++i) { 
        prevSum = 0; 
        for (int j = 0; j < i; j++) 
            prevSum += arr[j]; 
        nextSum = 0; 
        for (int j = i + 1; j < n; j++) 
            nextSum += arr[j]; 
        if (prevSum == nextSum) 
            return i; 
    } 
    return -1; 
} 

int main() { 
    int arr[] = {5, 1, 2, 8, 3, 4, 1}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    cout << "The equilibrium index is " << findEquilibriumIndex(arr, n); 
    return 0; 
}

आउटपुट:

The equilibrium index is 3

  1. - C++ में ऐरे इंडेक्स ऑपरेटर [] को ओवरलोड करना

    ऑपरेटर ओवरलोडिंग का ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा सुविधाओं में महत्वपूर्ण भूमिका है। ऑपरेटर ओवरलोडिंग एक प्रकार का कंपाइल टाइम या स्टेटिक पॉलीमॉर्फिज्म है। एल्गोरिदम Begin Arr नामक एक क्लास बनाएं और ऐरे का आकार घोषित करें। क्लास के अंदर, फॉर लूप का उपयोग करके सभी तत्वों को इनिशियलाइज़

  1. - C++ फंक्शन में 2D ऐरे पास करना

    ऐरे को फंक्शन में तर्क के रूप में पास किया जा सकता है। इस प्रोग्राम में, हम इसे फंक्शन में पास करके 2 डायमेंशनल ऐरे के तत्वों को प्रदर्शित करेंगे। एल्गोरिदम Begin 2D ऐरे n[][] को फंक्शन show() में पास किया जाता है। फंक्शन show() को कॉल करें, ऐरे n (n) को नेस्टेड फॉर लूप का उपयोग करके ट्रैवर

  1. - C++ फ़ंक्शन में ऐरे पास करना

    C++ पूरे ऐरे को फ़ंक्शन में आर्गुमेंट के रूप में पास करने की अनुमति नहीं देता। हालांकि, आप ऐरे के नाम को बिना इंडेक्स के निर्दिष्ट करके ऐरे का पॉइंटर पास कर सकते हैं। यदि आप सिंगल-डायमेंशन ऐरे को फ़ंक्शन में आर्गुमेंट के रूप में पास करना चाहते हैं, तो आपको फ़ंक्शन फॉर्मल पैरामीटर को निम्नलिखित तीन