#include <stdio.h>
int a[10], b[10], n;
int j = 0;
void dfs(int step) {
int i;
j++;
if (step == n+1) {
for (i=1; i<=n; i++)
printf("%d", a[i]);
printf("\n");
return;
}
for (i=1; i<=n; i++) {
if (b[i] == 0) {
a[step] = i;
b[i] = 1;
dfs(step+1);
b[i] = 0;
}
}
return;
}
int main() {
scanf("%d",&n);
dfs(1);
printf("%d", j);
return 0;
}
递归的使用案例(数据的全排列)
最新推荐文章于 2021-01-12 13:38:35 发布