C++ 회귀를 이용하여서 조합(Combination) 구현.
[코 드]
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<vector<int>> result;
vector<int> v = { 1,2,3,4,5 };
int len = v.size();
vector<int> sub;
void ser(int k) {
if (k == len ) {
result.push_back(sub);
}
else {
sub.push_back(v[k]);
ser( k + 1);
sub.pop_back();
ser( k + 1);
}
}
int main()
{
ser(0);
for (int i = 0; i < result.size(); i++) {
for (int k = 0; k < result[i].size(); k++) {
cout << result[i][k];
}
cout << "\n";
}
return 0;
}
8라인 > 결과를 저장할 2차원 vector
9라인 > vector<int> v : 조합을 실행할 값의 집합
10라인 > int len : 조합을 실행할 값의 개수
[ 결 과 ]
'C++ > Algorithm' 카테고리의 다른 글
C++ 제곱근 구하기, n승 값 구하기 : sqrt(), pow() (0) | 2020.01.30 |
---|---|
C++ 소수 찾기, 검사하기 [에라토스테네스의 체] (0) | 2020.01.29 |
C++ #include <bits/stdc++.h> 헤더 사용하기 (0) | 2020.01.28 |
C++ 최대공약수/최소공배수 - 유클리드 호제법 (0) | 2020.01.24 |
C++ 순열(permutation) 회귀를 이용 (0) | 2020.01.22 |