#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int num[10];
int vis[10];
int temp[10];
int step = 0;
int n;
int result[10];
int dfs(int step) {
if (step== n+1) {
for (int i = 1; i <= n;i++){
printf_s("%d", temp[i]);
}
printf_s("\n");
return 0;
}
for (int i = 1; i <=n; i++) {
if (!vis[i]) {
vis[i] = 1;
temp[step] = num[i];
dfs(step+1);
vis[i] = 0;
}
}
}
int main(){
scanf_s("%d", &n);
for (int i = 1; i <=n; i++){
scanf_s("%d", &num[i]);
vis[i] = 0;
}
dfs(1);
return 0;
}
C语言排列组合算法(dfs+回溯)
最新推荐文章于 2022-11-09 22:52:57 发布