题解 | #回型矩阵#
回型矩阵
https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = 1; int[][] arr = new int[n][n]; int i = 0, i2 = 0, j = 0, j2 = 0, i3 = 0; for(i = 0;i< n;i++) { for (j = i; j < n; j++) { //从左到右 if (arr[i][j] == 0) arr[i][j] = k++; else { //在需要的时候停下,并记录j break; } } j--;//注意上面的j多走了一格 for (i2 = i + 1; i2 < n; i2++) { //从上到下 if (arr[i2][j] == 0) arr[i2][j] = k++; else { //在需要的时候停下,并记录i2 break; } } i2--;//注意上面的i2多走了一格 for (j2 = j - 1; j2 >= 0; j2--) { //从右到左 if (arr[i2][j2] == 0) arr[i2][j2] = k++; else { //在需要的时候停下,并记录j2 break; } } j2++;//注意上面的j2多走了一格 for (i3 = i2 - 1; i3 > i; i3--) { //从下到上 if (arr[i3][j2] == 0) arr[i3][j2] = k++; else { //在需要的时候停下,并记录i3 break; } } i3++;//注意上面的i3多走了一格 } for (i = 0; i < n; i++) { //输出 for (j = 0; j < n; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); } } }