मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। और n सम है। हमें उस मान को खोजना होगा जो सरणी को संतुलित करने के लिए आवश्यक है। चूंकि सरणी का आकार सम है, तो हम दो भाग बना सकते हैं। बाएँ आधे का योग और दाएँ आधे का योग संतुलित होना चाहिए। तो अगर सरणी ए =[1, 2, 3, 2, 5, 3] की तरह है तो बाएं आधे का योग 6 है, और दाएं आधे का योग 10 है। इसलिए हमें सरणी को संतुलित करने के लिए 4 की आवश्यकता है।
कार्य सरल है, हम पहले और दूसरे भाग का योग ज्ञात करेंगे, फिर पूर्ण अंतर ज्ञात करेंगे और वापस लौटेंगे।
उदाहरण
#include<iostream> #include<cmath> using namespace std; int getValueToBalance(int a[], int n) { int left_sum = 0; for (int i = 0; i < n/2; i++) left_sum += a[i]; int right_sum = 0; for (int i = n/2; i < n; i++) right_sum += a[i]; return abs(left_sum - right_sum); } int main() { int arr[] = {1, 2, 3, 2, 5, 3}; int n = sizeof(arr)/sizeof(arr[0]); cout << "The number for balancing: " << getValueToBalance(arr, n); }
आउटपुट
The number for balancing: 4