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

C++ प्रोग्राम: जांचें कि सरणी को समान योग के दो उपसरणियों में विभाजित किया जा सकता है या नहीं

मान लें हमारे पास एक सरणी A है। हमें जांचना है कि क्या हम सरणी को दो भागों में विभाजित कर सकते हैं, जिनका योग समान हो। मान लें तत्व [6, 1, 3, 2, 5] हैं, तो [6, 1] और [2, 5] दो उपसरणी हो सकते हैं।

इस समस्या को इन नियमों का पालन करके आसानी से हल किया जा सकता है। हमें पहले सरणी के सभी तत्वों का योग ज्ञात करना होगा, फिर सरणी के प्रत्येक तत्व के लिए, हम कुल_योग - अब तक मिले तत्वों के योग का उपयोग करके दायां योग निकाल सकते हैं।

उदाहरण

#include <iostream>
#include <numeric>
using namespace std;

void displaySubArray(int arr[], int left, int right) {
    cout << "[ ";
    for (int i = left; i <= right; i++)
        cout << arr[i] << " ";
    cout << "] ";
}

void subarrayOfSameSum(int arr[], int n) {
    int total_sum = accumulate(arr, arr + n, 0);
    int so_far_sum = 0;
    for (int i = 0; i < n; i++) {
        if (2 * so_far_sum + arr[i] == total_sum) {
            cout << "subarray 1: ";
            displaySubArray(arr, 0, i - 1);
            cout << "\nsubarray 2: ";
            displaySubArray(arr, i + 1, n - 1);
            return;
        }
        so_far_sum += arr[i];
    }
    cout << "No subarray can be formed";
}

int main() {
    int arr[] = {6, 1, 3, 2, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    subarrayOfSameSum(arr, n);
}

आउटपुट

subarray 1: [ 6 1 ] 
subarray 2: [ 2 5 ]
  1. - C++ में जांचें कि संख्या दो प्रचुर संख्याओं के योग के रूप में व्यक्त की जा सकती है या नहीं

    मान लीजिए हमारे पास एक संख्या है। हमें इसे दो प्रचुर संख्याओं (Abundant numbers) के योग के रूप में व्यक्त करना है, यदि हां, तो संख्याएं प्रिंट करें, अन्यथा -1 प्रिंट करें। एक संख्या को प्रचुर संख्या कहा जाता है यदि संख्या के सभी उचित भाजकों का योग, जिसे sum(n) से दर्शाया जाता है, संख्या के मान से अध

  1. - C++ में सम ऐरे पजल (बिना घटाव ऑपरेटर के)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते। यदि हम घटाव ऑपरेशन का उपयोग कर

  1. - पायथन में उन योगों को खोजें जिनके लिए ऐरे को समान योग के उप-सरणियों में विभाजित किया जा सकता है

    मान लीजिए हमारे पास पूर्णांकों का एक ऐरे A है। हमें sum के सभी मान ढूंढने हैं ताकि किसी मान sum[i] के लिए ऐरे को उप-सरणियों में विभाजित किया जा सके जिनमें से प्रत्येक का योग sum[i] हो। यदि हम ऐरे को समान योग की उप-सरणियों में विभाजित नहीं कर सकते, तो -1 लौटाएं। इसलिए, यदि इनपुट A = [2, 4, 2, 2, 2,