题解 | #回型矩阵#
回型矩阵
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();
}
}
}
查看16道真题和解析