将此代码(原先是输出所有子集) 改成:给定1到n构成的集合,生成大小为k的所有子集合
比如n=4,集合为{1,2,3,4},大小为k=3的集合有{1,2,3},{1,2,4},{2,3,4}
输入n和k,用空格隔开
输出若干行,每行是一个大小为k的子集,用空格分开
如n=4,k=3输出
1 2 3
1 2 4
2 3 4
#include
#include
using namespace std;
vector subset;
int n;
void search(int k) {
if (k == n + 1) {
for (auto e : subset){
cout << e <<" ";
}
cout << endl;
return;
} else {
search(k+1);
subset.push_back(k);
search(k+1);
subset.pop_back();
}
}
int main() {
cin >> n ;
search(1);
}