非递归做法
直接看代码:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int n,m;
bool set(int x)/判断是否可以输出
{
int res=0;
while(x)
{
if(x&1)
res++;
x>>=1;
}
return res==m;
}
void print(int x)输出
{
string a;
while(x)
{
if(x&1)
a+='1';
else
a+='0';
x>>=1;
}
for(int i=a.size( )-1;i>=0;i--)
{
if(a[i]=='1') cout<<n-i<<' ';
}
cout<<endl;
}
int main( )
{
cin>>n>>m;
for(int i=(1<<n);i>0;i--)
{
if(set(i))
print(i);
}
return 0;
}
tql