एरे (Array) एक डेटा संरचना है जो समान डेटा प्रकार के कई तत्वों को संग्रहीत करती है। यह एक बार में मानों का पूरा सेट संग्रहीत कर सकता है। लेकिन इसकी लंबाई पहले से परिभाषित होनी चाहिए।
इस सम एरे पहेली में, हमें एक निश्चित आकार का एरे A1 दिया जाता है, मान लीजिए n। इस पहेली को हल करने के लिए, हम S1 नामक एक एरे बनाएंगे जो एरे के सभी तत्वों के योग को संग्रहीत करता है सिवाय उस तत्व के जिसकी स्थिति उपयोग की जा रही है। उदाहरण के लिए, यदि S1[3] की गणना की जा रही है तो हम A1 के 4th स्थिति के तत्व को छोड़कर सभी तत्वों का योग निकालेंगे।
उदाहरण -
एरे A1 = {1,2,3,4,6} आउटपुट S1 = {15,14,13,12,10}
व्याख्या - सम एरे की गणना करने के लिए, हम प्रारंभिक एरे के प्रत्येक तत्व को एक योग वेरिएबल में जोड़ेंगे सिवाय उस मान के जिसकी संख्या सम एरे के समान है। जिसका अर्थ है सम एरे के पहले तत्व के लिए हम पहले तत्व को छोड़कर एरे के सभी तत्वों का योग निकालेंगे, और पूरे एरे के लिए समान। आइए इस तर्क का उपयोग करके सम एरे के प्रत्येक तत्व के लिए मानों की गणना करें।
Sum[0], हम 0th इंडेक्स पर तत्व को छोड़कर तत्वों का योग निकालेंगे। तो,
Sum[0] = 2+3+4+6 = 15
इसी तरह, हम sum[1] का मान निकालेंगे...
Sum[1] = 1+3+4+6 = 14
Sum[2] = 1+2+4+6 = 13
Sum[3] = 1+2+3+6 = 12
Sum[4] = 1+2+3+4 = 10
तो, सम एरे के सभी तत्व तैयार हैं और सम एरे है sum = {15,14,13,12,10}
एल्गोरिदम
चरण 1: आकार n के एक सम एरे sum[n] को शून्य से आरंभ करें, जहां n = मूल एरे का आकार।
चरण 2: sum[] पर पुनरावृति करें और करें:
चरण 2.1: sum[i] के लिए, j → 0 से n तक एक फॉर लूप चलाएं
चरण 2.2: यदि (i != j) {sum[i] += arr[j] }
चरण 3: std प्रिंट स्टेटमेंट का उपयोग करके सम एरे प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
int main() {
int arr[] = { 3, 6, 4, 8, 9 };
int n = sizeof(arr) / sizeof(arr[0]);
int leftSum[n], rightSum[n], Sum[n], i, j;
leftSum[0] = 0;
rightSum[n - 1] = 0;
cout << "The original array is : \n";
for (i = 0; i < n; i++)
cout << arr[i] << " ";
for (i = 1; i < n; i++)
leftSum[i] = arr[i - 1] + leftSum[i - 1];
for (j = n - 2; j >= 0; j--)
rightSum[j] = arr[j + 1] + rightSum[j + 1];
for (i = 0; i < n; i++)
Sum[i] = leftSum[i] + rightSum[i];
cout << "\nThe sum array is : \n";
for (i = 0; i < n; i++)
cout << Sum[i] << " ";
return 0;
}
आउटपुट
The original array is : 3 6 4 8 9 The sum array is : 27 24 26 22 21