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++ में दो प्रचुर संख्याओं के योग के रूप में व्यक्त किया जा सकता है

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

  1. सी ++ में एक सम ऐरे पहेली?

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

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

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