इस समस्या में, हमें n पूर्णांक मानों से युक्त एक सरणी arr[] दिया जाता है। हमारा काम एक सरणी के संतुलन सूचकांक को खोजने के लिए एक प्रोग्राम बनाना है।
संतुलन सूचकांक वह सूचकांक है जिस पर सूचकांक से पहले सभी तत्वों का योग सूचकांक के बाद सभी तत्वों के योग के समान होता है।
आकार n के सरणी arr[] के लिए, संतुलन सूचकांक e ऐसा है कि,
योग (arr[0… e-1] ) =योग (arr[e… n-1])
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: गिरफ्तारी [] ={5, 1, 2, 8, 3, 4, 1}
आउटपुट: 3पी>
स्पष्टीकरण:
गिरफ्तार [0] + गिरफ्तार [1] + गिरफ्तार [2] =गिरफ्तार [4] + गिरफ्तार [5] + गिरफ्तार [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