Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์ Subsets ทั้งหมดของขนาดที่กำหนดของเซตใน C++

ในปัญหานี้ เราจะได้รับ array และต้องพิมพ์ subsets ทั้งหมดที่มีขนาด r ที่กำหนด ซึ่งสามารถสร้างได้จากองค์ประกอบของ array

ตัวอย่างเพื่อความเข้าใจ

Input: array = {3, 5, 6} r = 2
Output: 3 5 3 6 5 6

ในปัญหานี้ เราจะต้องหา combinations ทั้งหมดของตัวเลขใน array และเว้น combinations ที่มีขนาด r bit ซึ่งอยู่ในเซตแล้ว

โปรแกรมตัวอย่าง

#include <iostream>
using namespace std;

void printSubset(int arr[], int n, int r, int index, int data[], int i);

int main() {
    int arr[] = {3, 5, 6};
    int r = 2;
    cout << "The sets are : ";
    int n = sizeof(arr) / sizeof(arr[0]);
    int data[r];
    printSubset(arr, n, r, 0, data, 0);
    return 0;
}

void printSubset(int arr[], int n, int r, int index, int data[], int i) {
    if (index == r) {
        for (int j = 0; j < r; j++)
            cout << data[j] << " ";
        cout << endl;
        return;
    }
    if (i >= n)
        return;
    data[index] = arr[i];
    printSubset(arr, n, r, index + 1, data, i + 1);
    printSubset(arr, n, r, index, data, i + 1);
}

ผลลัพธ์

The sets are -

3 5
3 6
5 6