#include <stdio.h>
#include<string.h>
int Mark[10];
int Element[10];
void dfs(int n,int pcur){
if(pcur==n){//递归出口
for(int i=0;i<n;i++){
printf("%d",Element[i]);
}
printf("\n");
return;
}
else{
for(int j=1;j<=n;j++){
//判断j是否被使用过;如若使用过,将不再放入Element[ ]数组中
if(!Mark[j]){
//放值
Element[pcur]=j;
//标记j已被使用
Mark[j]=1;
//递归,实现深搜
dfs(n,pcur+1);
//回溯部分,设置当前值并未被使用
Mark[j]=0;
}
}
}
}
int main(){
int n;
scanf("%d",&n);
//生成一个全为0的数组,用0,1标记dfs函数中j值是否被使用。0--->未被使用,1--->已使用。
mems
习题2.8 输出全排列(深搜问题)
最新推荐文章于 2022-08-16 23:00:26 发布