📄 c(n,k).txt
字号:
/* 产生从n个元素中选k个的所有排列,并升序输出 */
#include <stdio.h>
#include <memory.h>
#include <algorithm>
using namespace std;
const int S = 50 , nK = 6;
int k,e[S],ans[S];
bool used[S];
void Dfs(int depth)
{
int i;
if(depth==nK+1)
{
for(i=1;i<=nK;i++)
printf("%d ",ans[i]);
printf("\n");
}
else
{
for(i=1;i<=k;i++)
{
if(used[i]==0)
{
ans[depth] = e[i];
used[i] = 1;
Dfs(depth+1);
used[i] = 0;
}
}
}
}
int main ()
{
int i;
while(EOF!=scanf("%d",&k))
{
if(k==0)
break;
for(i = 1;i<=k;i++)
scanf("%d", &e[i]);
memset(ans,0,sizeof(ans));
memset(used,0,sizeof(used));
Dfs(1);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -