CODE:
import java.util.Scanner;
public class TestNine {
public static int getNumber(){
//接收用户输入
Scanner scan = new Scanner(System.in);
System.out.println("请输入您要创建九宫格的数量 n >>>");
int n = scan.nextInt();
if(n%2==0){
System.out.println("输入数据必须为奇数");
return 3;
}else{
return n;
}
}
public static void print(int [][] arr){
//输出二维数组
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr[i].length; j++){
System.out.print(arr[i][j] +" ");
}
System.out.println();
}
}
public static void init(int [][] arr){
int n = arr.length;
//填充数据,初始化二维数组
int x = 0;
int y = arr.length/2;
for(int data = 1; data<=n*n; data++){
arr[x][y] = data;
//斜向上走
x--;
y++;
//判断 x 和 y 是否越界
//1. x 越界,y 不越界
if(x==-1 && y<n ){
x = n-1;
}
//2.y 越界,x 不越界
if( y==n && x>=0 ){
y = 0;
}
//3. x y 都越界 上方数据格已经被占
if((x ==-1 && y == n) ) {
x += 2;
y--;
}
if( arr[x][y] !=0 ) {
x += 2;
y--;
}
}
}
public static void main(String[] args) {
int n = getNumber();
int [][] arr = new int[n][n];
init(arr);
print(arr);
}
}