算法
详情请看
https://blog.csdn.net/m0_68055637/article/details/128960743
java 代码
import java.util.Scanner;
public class Main{
static int []path=new int[10];
static boolean []sta=new boolean[10];
static int n;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
dfs(0);
}
private static void dfs(int u) {
if(u==n){
for (int i = 0; i < n; i++) {
System.out.print(path[i]+" ");
}
System.out.println();
return;
}
for(int i=1;i<=n;i++){
if (!sta[i]) {
path[u]=i;
sta[i]=true;
dfs(u+1);
sta[i]=false;
}
}
}
}