কম্পিউটার টিউটোরিয়াল

C++-এ N সংখ্যার অ্যারে থেকে K সংখ্যা দিয়ে গঠিত সব স্বতন্ত্র পূর্ণসংখ্যা প্রিন্ট করা

এই সমস্যায় N পূর্ণসংখ্যার একটি অ্যারে এবং একটি সংখ্যা K দেওয়া আছে। আমাদের অ্যারেতে যেকোনো K উপাদান যোগ করে তৈরি হওয়া সব স্বতান্ত্র সংখ্যা প্রিন্ট করতে হবে। একটি সংখ্যা K বার ব্যবহার করা যাবে।

উদাহরণ

ইনপুট: array = {2, 5, 13, 9}, K = 2
আউটপুট: 4, 7, 10, 11, 14, 15, 18, 22, 26
ব্যাখ্যা: ২টি উপাদান যোগ:
2+2=4, 2+5=7, 2+13=15, 2+9=11, 5+5=10, 5+13=18, 5+9=14, 13+13=26, 13+9=22, 9+9=18

এই সমস্যাটি সমাধানের জন্য অ্যারেতে থেকে K উপাদানের সব কম্বিনেশন খুঁজে বের করতে হবে। এর জন্য রিকার্শন ব্যবহার করা হবে যা রিকার্সিভলি কল হয়ে সংখ্যাগুলো তৈরি করবে। ডুপ্লিকেট মান এড়াতে একটি সেট ব্যবহার করা হবে।

বাস্তবায়ন

#include <bits/stdc++.h> 
using namespace std; 

set<int> distNumbers; 

void generateNumberFromArray(int count, int arr[], int n, int num, int k) { 
    if (k == count) { 
        distNumbers.insert(num); 
        return; 
    } 
    for (int i = 0; i < n; i++) { 
        generateNumberFromArray(count + 1, arr, n, num + arr[i], k); 
    } 
} 

void printDistinctIntegers(int k, int arr[], int n) { 
    generateNumberFromArray(0, arr, n, 0, k); 
    cout << "The " << distNumbers.size() << " distinct integers are:\n"; 
    while (!distNumbers.empty()) { 
        cout << *distNumbers.begin() << "\t"; 
        distNumbers.erase(*distNumbers.begin()); 
    } 
} 

int main() { 
    int arr[] = { 2, 5, 13, 9 }; 
    int n = 4; 
    int k = 2; 
    printDistinctIntegers(k, arr, n); 
    return 0; 
}

আউটপুট

The 9 distinct integers are :
4 7 10 11 14 15 18 22 26
  1. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা

  2. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  3. C++-এ দেওয়া সংখ্যা পর্যন্ত অ্যারে উপাদান সর্বাধিক করা

  4. অ্যারে থেকে দুটি সংখ্যা বানিয়ে ন্যূনতম যোগফল (C++)