递归实现排列型枚举
import java.util.*;
public class Main{
static int N=10;
static int[] st = new int[N]; //0代表还未选择
static boolean[] used = new boolean[10]; // false代表没选 true代表已选
static int n=0;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
n = in.nextInt();
dfs(1);
}
public static void dfs(int m){
if(m>n){
for(int i=1;i<=n;i++){
System.out.print(st[i]+" ");
}
System.out.println(" ");
return;
}
for(int i=1;i<=n;i++){
if(!used[i]){
used[i]=true;
st[m]=i;
dfs(m+1);
used[i]=false;
st[m]=0;
}
}
}
}