Java 生成螺旋矩阵:代码示例及运行结果
Java 生成螺旋矩阵:代码示例及运行结果
本文将提供一个用 Java 代码实现螺旋矩阵生成的示例,并展示了运行结果。该代码适用于任何正整数 n,可生成 n x n 的螺旋矩阵。
代码示例
import java.util.Scanner;
public class SpiralMatrix {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入整数 n:");
int n = scanner.nextInt();
scanner.close();
int[][] matrix = generateSpiralMatrix(n);
// 打印方阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
}
private static int[][] generateSpiralMatrix(int n) {
int[][] matrix = new int[n][n];
int num = 1;
int rowStart = 0;
int rowEnd = n - 1;
int colStart = 0;
int colEnd = n - 1;
while (num <= n * n) {
// 上行(从左到右)
for (int i = colStart; i <= colEnd; i++) {
matrix[rowStart][i] = num++;
}
rowStart++;
// 右列(从上到下)
for (int i = rowStart; i <= rowEnd; i++) {
matrix[i][colEnd] = num++;
}
colEnd--;
// 下行(从右到左)
for (int i = colEnd; i >= colStart; i--) {
matrix[rowEnd][i] = num++;
}
rowEnd--;
// 左列(从下到上)
for (int i = rowEnd; i >= rowStart; i--) {
matrix[i][colStart] = num++;
}
colStart++;
}
return matrix;
}
}
运行结果
假设输入整数 n 为 4,运行结果如下:
请输入整数 n:4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
说明
该代码通过循环遍历矩阵边界,并按顺时针方向填充数字。具体步骤如下:
- 初始化矩阵、起始行、结束行、起始列、结束列以及数字计数器。
- 循环遍历,每次循环填充矩阵的一圈。
- 填充上行、右列、下行、左列,每次填充完后更新起始行、结束行、起始列、结束列。
- 当数字计数器达到 n * n 时,循环结束,返回生成的矩阵。
方阵中的数字按顺时针方向螺旋填充,从 1 开始,填充到 n * n。
希望本文能帮助您理解如何用 Java 代码生成螺旋矩阵。
原文地址: https://www.cveoy.top/t/topic/pkOr 著作权归作者所有。请勿转载和采集!