import java.util.Scanner;
public class Main {
static int n;
static int []arr=new int[10];
static boolean[]visit=new boolean[10];
public static void dfs(int num){
if(num==n){
for(int i=0;i<n;i++){
System.out.print(" "+arr[i]);
//System.out.printf("%5d",arr[i]);
}
System.out.println();
}
for(int i=1;i<=n;i++){
if(!visit[i]){
visit[i]=true;
arr[num]=i;
dfs(num+1);
visit[i]=false;
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
dfs(0);
}
}
System.out.print(" "+arr[i]); //System.out.printf("%5d",arr[i]);
为什么加上%5d反而会在当输入为8时显示超出内存呢?求大佬解惑。谢谢。