前N个小写字母中取M个的所有组合。按照字典序从小到大输出。
输入格式
一行2个正整数N和M, 0< M <= N <8
输出格式
每行一个组合。
输入/输出例子1
输入:
3 2
输出:
ab
ac
bc
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int n,m;
bool inuse[9];
int ans[9];
void C(int i)
{
if(i==m+1)
{
for(int j=1;j<=m;j++)
{
cout<<char(ans[j]+'a'-1);
}
cout<<endl;
return ;
}
int j;
if(i!=1)j=ans[i-1];
else j=1;
for(;j<=n;j++)
{
if(inuse[j]==false)
{
inuse[j]=true;
ans[i]=j;
C(i+1);
inuse[j]=false;
}
}
}
int main(){
cin>>n>>m;
C(1);
return 0;
}