超内存求救!!!
查看原帖
超内存求救!!!
1315126
Sagiri1210楼主2024/7/15 11:27

改了几次,第三个测试点输入"8"还是超内存,求教

import java.util.Scanner;

public class Main{
    public static int n;
    public static boolean[] b;
    public static int[] ans;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        b = new boolean[n+1];
        ans = new int[n+1];
        f(1);
    }
    public static void f(int k) {
        if (k==n+1){
            print();
            return;
        }
        int i;
        for (i = 1; i <= n; i++){
            if (b[i]==false){
                b[i]=true;
                ans[k]=i;
                f(k+1);
                b[i]=false;
            }
        }
    }
    public static void print(){
        StringBuffer sb = new StringBuffer();
        for (int i = 1; i <= n; i++){
            sb.append(String.format("%5d",ans[i]));
        }
        System.out.println(sb);
    }
}
2024/7/15 11:27
加载中...