输入M,N,从1-M中选N个有几种选法
5 3
5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1
#include<iostream>
using namespace std;
//递归
int buff[100]={0};
int M,N;
void print()
{
for(int i=1;i<=N;i++)
cout<<buff[i];
cout<<endl;
}
void dfs(int M,int N) //M中选N个
{
if(N==0)
print();
else
{
for(int i=M;i>=N;i--) //从大到小 12345 ->543 防止出现重复的序列
{
buff[N] = i;
dfs(i-1,N-1);
}
}
}
int main()
{
cin>>M>>N;
dfs(M,N);
return 0;
}