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

C++ में किसी सरणी के सभी अलग-अलग सबसेट (या बाद के) योग खोजें

मान लीजिए कि हमारे पास पूर्णांकों का एक सेट है। दिए गए समुच्चयों के उपसमुच्चय से बनने वाले विशिष्ट योग ज्ञात कीजिए और उन्हें आरोही क्रम में मुद्रित कीजिए। सरणी तत्वों का योग छोटा है। विचार करें कि सरणी तत्व [1, 2, 3] जैसे हैं। आउटपुट 0, 1, 2, 3, 4, 5, 6 होगा। विशिष्ट उपसमुच्चय {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1 हैं। , 3}, {1, 2, 3}, योग मान 0, 1, 2, 3, 3, 5, 4, 6 हैं।

इसे हल करने के लिए, हम गतिशील प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे। जब दिए गए तत्व का योग छोटा होता है, तो हम सरणी के आकार वाली पंक्तियों के साथ एक DP तालिका बना सकते हैं, और स्तंभ का आकार दिए गए सरणी में सभी तत्वों का योग होगा।

उदाहरण

#include<iostream>
#include<cstring>
using namespace std;
void displaySubsetSum(int arr[], int n) {
   int sum = 0;
   for (int i=0; i<n; i++)
      sum += arr[i];
   bool table[n+1][sum+1];
   memset(table, 0, sizeof(table));
   for (int i=0; i<=n; i++)
      table[i][0] = true;
   for (int i=1; i<=n; i++) {
      table[i][arr[i-1]] = true;
      for (int j=1; j<=sum; j++) {
         if (table[i-1][j] == true) {
            table[i][j] = true;
            table[i][j + arr[i-1]] = true;
         }
      }
   }
   for (int j=0; j<=sum; j++)
      if (table[n][j]==true)
         cout << j << " ";
   }
int main() {
   int arr[] = {1, 2, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   displaySubsetSum(arr, n);
}

आउटपुट

0 1 2 3 4 5 6

  1. सी ++ में एक सरणी में गैर-दोहराए जाने वाले (विशिष्ट) तत्वों का योग खोजें

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें सरणी में सभी अलग-अलग तत्वों का योग खोजना होगा। तो अगर ए =[5, 12, 63, 5, 33, 47, 12, 63], तो अलग-अलग तत्वों का योग 160 है। एक बार विचार करने के बाद डुप्लिकेट तत्वों को आसानी से अनदेखा कर दिया जाता है। हम इस समस्या को कुशलतापूर्वक हल करने क

  1. सरणी में सभी जोड़े (ए, बी) और (सी, डी) खोजें जो सी ++ में एबी =सीडी को संतुष्ट करते हैं

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें दो जोड़े (ए, बी) और (सी, डी) चुनना है, जैसे कि एबी =सीडी। मान लीजिए कि सरणी A =[3, 4, 7, 1, 2, 9, 8] है। आउटपुट जोड़े (4, 2) और (1, 8) हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - i :=0 से n-1 के लिए, करें जे के लिए:=i + 1 से n-1 तक, कर

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

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