题目:
代码:
#include<iostream>
using namespace std;
#define M 10005
#include<iomanip>
int sa[5010];
int n,r;
void dfs(int step)
{
if(step==r+1)
{
for(int i=1;i<=r;i++)
{
cout<<setw(3)<<sa[i];
}
cout<<endl;
return ;
}
for(int i=sa[step-1]+1;i<=n;i++)
{
sa[step]=i;
dfs(step+1);
}
}
int main()
{
//不重复遍历 这次是自然数,比上次的外来数组更简单
//遍历开始于上一次的后面的数,即可实现
//n个数,抽取r个
cin>>n>>r;
dfs(1);
}