经典算法无需注解
using namespace std;
void display(int num)
{
//if(num==0)
//return ;
cout << num <<" ";
}
int b[MAXN];
/*
从m个选择n个数字 放入b数组 从step开始选和不选 pos是在b数组中的位置
*/
void C(int m,int step,int n,int pos)
{
if(n==0)
{
cout << "全排列:" ;
for_each(b,b+pos,display);
cout << endl;
cout << "-------" << endl;;
do{
for_each(b,b+pos,display);
cout << endl;
}while(next_permutation(b,b+pos));
return ;
}
if(m-step<n)
return ;
b[pos] = step+1;
C(m,step+1,n-1,pos+1);
b[pos] = 0;
C(m,step+1,n,pos);
}
int main()
{
//freopen("in.txt","r",stdin);
//int m,n;
//cin >> m >> n;
C(5,0,3,0);
}