先附上一张大致数组对应的空间表,为后面如何放入数字参考用。
import java.util.Scanner;
public class P5731蛇形方阵 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][n];
int row = 0, clo = 0;
int k = 1;
arr[row][clo] = 1;
//k < n * n时在里面循环
while (k < n * n) {
//当列数+1小于右边边界时,并且右边的位置等于0(没有数)可以一直往右边赋值
while (clo + 1 < n && arr[row][clo + 1] == 0) {
arr[row][clo++] = k++;
}
//行数+1小于边界并且下边的数组没有被赋值,一直向下赋值
while (row + 1 &