題意:輸出A-Z裏面前N個字母的全排列的前K個。
思路:使用next_permutation()
函數。
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int T,cas=1;
scanf("%d", &T);
while (T--)
{
int n, k;
scanf("%d %d", &n, &k);
char ch[30];
for (int i = 0; i < n; i++)
ch[i] = 'A'+i;
printf("Case %d:\n",cas++);
do
{
if (!k)
break;
k--;
for (int i = 0; i < n; i++)
printf("%c", ch[i]);
printf("\n");
}while (next_permutation(ch, ch+n));
}
return 0;
}