주어진 집합에 모든 집합 찾기 알고리즘

주어진 집합에 모든 집합 찾기 알고리즘


원소 {a, b, c}가 있다면 {a}, {b}, {c}, {a b}, {a c}, {b c}, {a b c} 이렇게 모든 집합을 찾고 싶다.


이것을 C++로 표현을 해보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
void printSubsets(char set[])
{
    int n = 3;
    for (int i = 0; i < (1 << n); i++)
    {
        cout << "{ ";
        for (int j = 0; j < n; j++)
            if ((i & (1 << j)) > 0)
                cout << set[j] << " ";
        cout << " }" << endl;
    }
}
int main()
{
    char set[] = { 'a''b''c' };
    printSubsets(set);
}
cs

< 출력 결과 >







댓글

Designed by JB FACTORY