从n个元素中抽出r个元素(不分顺序且r < = n),可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> temp;
void DFS(int n,int k)
{
if(k<=0||n<=0)//递归边界
{
for(vector<int>::iterator it=temp.begin();it<temp.end();it++)//输出vector数组
cout<<*it<<' ';
cout<<endl;
return ;
}
for(int i=k;i<=n;i++)
{
temp.push_back(i);
DFS(i-1,k-1);//递归
temp.pop_back();
}
}
int main()
{
int n,k;
cin>>n>>k;
DFS(n,k);
return 0;
}