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

C++ सम एरे पहेली (Sum Array Puzzle)


एरे (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

  1. - C++ में स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि C में कोई स्ट्रिंग्स नहीं थीं। हमें कैरेक्टर सरणी का उपयोग करके स्ट्रिंग्स बनानी पड़ती थीं। इसलिए कुछ स्ट्रिंग्स की सरणी बनाने के लिए, हमें कैरेक्टर्स की 2-आयामी सरणी बनानी पड़ती थी। प्रत्येक पंक्

  1. - C++ में सॉर्टिंग

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

  1. - C++ में पॉइंटर अंकगणित का उपयोग करके ऐरे का योग

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