描述:输入一个n,输出全排列
import java.util.Scanner;
public class 打印全排列 {
static int a[]=new int[10];//存储
static int vis[]=new int[10];//标记
static int n;
//static int dep=1; 不带参数
static void dfs(int dep){ //带参数
if(dep>n){ //到达底部,打印
for(int i=1;i<=n;i++)
System.out.print(a[i]);
System.out.println();
}
for(int i=1;i<=n;i++){
if(vis[i]==0){
a[dep]=i;
vis[i]=1;
dfs(dep+1);
vis[i]=0;
}
}
}
/*static void dfs(){ //不带参数
if(dep>n){
for(int i=1;i<=n;i++)
System.out.print(a[i]);
System.out.println();
}
for(int i=1;i<=n;i++){
if(vis[i]==0){
a[dep]=i;
vis[i]=1;
dep++;
dfs();
dep--;
vis[i]=0;
}
}
}
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
n=scan.nextInt();
dfs(1); //从第一层开始深搜
//dfs();
}
}