কম্পিউটার

চিহ্ন পরিবর্তন করে N উপাদানগুলির সমস্ত সমন্বয় প্রিন্ট করুন যাতে তাদের যোগফল C++ এ M দ্বারা বিভাজ্য হয়


এই সমস্যাটিতে, আমাদেরকে N উপাদানগুলির একটি অ্যারে দেওয়া হয়েছে। এবং একটি পূর্ণসংখ্যা M.

দ্বারা বিভাজ্য উপাদানগুলির সমস্ত যোগফল ফেরত দিতে হবে
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. C++ এ একটি অনির্দেশিত গ্রাফের সমস্ত সংযুক্ত উপাদানের ন্যূনতম উপাদানগুলির সমষ্টি

  2. C++ এ প্রদত্ত N রেঞ্জের সমস্ত উপাদান কভার করে এমন একটি পরিসর খুঁজুন

  3. একটি অ্যারে উপাদান খুঁজুন যাতে সমস্ত উপাদান এটি দ্বারা c++ ব্যবহার করে বিভাজ্য হয়

  4. C++ অ্যারের সমস্ত উপাদানে XOR অপারেশন প্রয়োগ করে অ্যারের যোগফলকে মিনিমাইজ করা