📄 permutation.cpp
字号:
//////////////////////////////////////////////////////////////////////////
// 递归的全排列生成
// 刘金义--辽宁石油化工大学工程软件研究所
// j_y_liu@sina.com
//////////////////////////////////////////////////////////////////////////
#include <stdio.h>
int total = 0;
void permutation(int M, int n, bool finished[], int perm[])
{
if(n==M+1)
{
for(int i=1; i<=M; i++)
printf("%d ", perm[i]);
printf("\n");
total++;
return;
}
for(int i=1; i<=M; i++)
{
if(finished[i]==false)
{
perm[n] = i;
finished[i] = true;
permutation(M, n+1, finished, perm);
finished[i] = false;
}
}
}
main()
{
int M;
bool finished[100];
int perm[100];
printf("Input the number(<20):");
scanf("%d", &M);
for(int i=1; i<=M; i++)
finished[i] = false;
permutation(M, 1, finished, perm);
printf("total: %d\n", total);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -