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

N तत्वों के सभी संयोजनों को चिन्ह बदलकर इस प्रकार प्रिंट करें कि उनका योग C++ में M से विभाज्य हो

इस समस्या में, हमें N तत्वों की एक सरणी दी गई है। और सभी तत्वों के योग को एक पूर्णांक एम से विभाजित करने की आवश्यकता है।

Input : array = {4, 7, 3} ; M = 3
Output : 5+4+3 ; 5+4-3

इस समस्या को हल करने के लिए, हमें एक पावर सेट की अवधारणा को जानना होगा जिसका उपयोग प्राप्त सभी संभावित योगों को खोजने के लिए किया जा सकता है। इस राशि से, उन सभी को प्रिंट करें जो M से विभाज्य हैं।

एल्गोरिदम

Step 1: Iterate overall combinations of ‘+’ and ‘-’ using power set.
Step 2: If the sum combination is divisible by M, print them with signs.

उदाहरण

#include <iostream>
using namespace std;
void printDivisibleSum(int a[], int n, int m){
   for (int i = 0; i < (1 << n); i++) {
      int sum = 0;
      int num = 1 << (n - 1);
      for (int j = 0; j < n; j++) {
         if (i & num)
            sum += a[j];
         else
            sum += (-1 * a[j]);
         num = num >> 1;
      }
      if (sum % m == 0) {
         num = 1 << (n - 1);
         for (int j = 0; j < n; j++) {
            if ((i & num))
               cout << "+ " << a[j] << " ";
            else
               cout << "- " << a[j] << " ";
            num = num >> 1;
         }
         cout << endl;
      }
   }
}
int main(){
   int arr[] = {4,7,3};
   int n = sizeof(arr) / sizeof(arr[0]);
   int m = 3;
   cout<<"The sum combination divisible by n :\n";
   printDivisibleSum(arr, n, m);
   return 0;
}

आउटपुट

योग संयोजन n से विभाज्य है -

- 4 + 7 - 3
- 4 + 7 + 3
+ 4 - 7 - 3
+ 4 - 7 + 3

  1. सी++ में एक अप्रत्यक्ष ग्राफ के सभी जुड़े घटकों में न्यूनतम तत्वों का योग

    इस समस्या में, हमें N संख्याओं का एक सरणी arr दिया जाता है जहाँ arr[i] (i+1)वें नोड का प्रतिनिधित्व करता है। इसके अलावा, किनारों के एम जोड़े हैं जहां यू और वी किनारे से जुड़े नोड का प्रतिनिधित्व करते हैं। हमारा काम एक अप्रत्यक्ष ग्राफ के सभी जुड़े घटकों में न्यूनतम तत्वों का योग खोजने के लिए एक कार्

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें A से एक अवयव इस प्रकार ज्ञात करना है कि सभी तत्वों को इससे विभाजित किया जा सके। मान लीजिए कि ए [15, 21, 69, 33, 3, 72, 81] जैसा है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हो सकती हैं। इस समस्या को हल करने के लिए, हम ए में सबसे

  1. सी ++ में सरणी के सभी तत्वों पर एक्सओआर ऑपरेशन लागू करके सरणी योग को कम करना

    विवरण आकार की एक सरणी को देखते हुए, एन। एक तत्व एक्स खोजें जैसे कि सरणी तत्वों का योग न्यूनतम होना चाहिए जब एक्सओआर ऑपरेशन एक्स और सरणी के प्रत्येक तत्व के साथ किया जाता है। If input array is: arr [] = {8, 5, 7, 6, 9} then minimum sum will be 30 Binary representation of array elments are: 8 : 1000