Java 代码生成螺旋矩阵 - 矩阵元素占位符
Java 代码生成螺旋矩阵 - 矩阵元素占位符
本文提供 Java 代码,用于生成给定自然数 n 的螺旋矩阵。矩阵元素将以 4 位宽度显示,确保对齐和可读性。
示例输出:
对于 n = 5,生成的矩阵为:
1 2 9 10 25
4 3 8 11 24
5 6 7 12 23
16 15 14 13 22
17 18 19 20 21
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int[][] matrix = generateMatrix(n);
printMatrix(matrix);
}
sc.close();
}
private static int[][] generateMatrix(int n) {
int[][] matrix = new int[n][n];
int num = 1;
int left = 0, right = n - 1, top = 0, bottom = n - 1;
while (num <= n * n) {
for (int i = left; i <= right; i++) {
matrix[top][i] = num;
num++;
}
top++;
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num;
num++;
}
right--;
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num;
num++;
}
bottom--;
for (int i = bottom; i >= top; i--) {
matrix[i][left] = num;
num++;
}
left++;
}
return matrix;
}
private static void printMatrix(int[][] matrix) {
int n = matrix.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.printf("%4d", matrix[i][j]);
}
System.out.println();
}
}
}
代码解释:
-
generateMatrix(int n):
- 创建一个 n x n 的二维数组 matrix 来存储矩阵元素。
- 使用变量 num 来跟踪要写入矩阵的下一个数字,初始值为 1。
- 使用变量 left、right、top、bottom 来跟踪螺旋遍历的边界。
- 使用 while 循环,直到所有数字都填充到矩阵中。
- 在每个循环中,依次从左到右、从上到下、从右到左、从下到上填充矩阵的边界,并更新边界变量。
-
printMatrix(int[][] matrix):
- 使用嵌套循环遍历矩阵,并使用 System.out.printf("%4d", matrix[i][j]) 格式化输出每个元素,确保每个元素占 4 位宽度。
代码的应用:
本代码可以用于生成螺旋矩阵,并以格式化的方式打印输出。它可以应用于各种需要生成和展示矩阵的场景,例如算法学习、图形处理等。
原文地址: https://www.cveoy.top/t/topic/nY29 著作权归作者所有。请勿转载和采集!