第十个点TLE了,就正常使用递归
import java.util.*;
public class Main {
static public int [][]arr;
public static void go_away(int length, int begin_x, int begin_y) {
//递归最小出口(2*2的矩阵)
if(length == 2) {
arr[begin_x][begin_y]--;
}
//递归
else {
//赦免左上角
for(int j = 0; j< length/2; j++) {
for(int n = 0; n< length/2; n++) {
arr[begin_x+j][begin_y+n]--;
}
}
go_away(length/2,begin_x+length/2,begin_y);//右上角
go_away(length/2,begin_x+length/2,begin_y+length/2);//右下角
go_away(length/2,begin_x,begin_y+length/2);//左下角
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = (int)Math.pow(2, n);
arr = new int[m][m];
//调用递归函数
go_away(m, 0, 0);
//输出结果
for(int i = 0; i < m; i ++) {
for(int j = 0; j < m; j ++) {
System.out.print(++arr[i][j]+" ");
}
System.out.println();
}
}
}