Java 生成螺旋矩阵:代码示例与详解
生成螺旋矩阵的 Java 代码
本文提供 Java 代码实现生成螺旋矩阵,并详细解释代码逻辑。代码示例展示了如何使用循环遍历矩阵,以螺旋状填充数字。
代码实现
```java import java.util.Scanner;public class SpiralMatrix { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt();
int[][] matrix = new int[n][n];
int num = 1;
int rowStart = 0, rowEnd = n - 1;
int colStart = 0, colEnd = n - 1;
while (rowStart <= rowEnd && colStart <= colEnd) {
// 上边
for (int i = colStart; i <= colEnd; i++) {
matrix[rowStart][i] = num++;
}
rowStart++;
// 右边
for (int i = rowStart; i <= rowEnd; i++) {
matrix[i][colEnd] = num++;
}
colEnd--;
// 下边
if (rowStart <= rowEnd) {
for (int i = colEnd; i >= colStart; i--) {
matrix[rowEnd][i] = num++;
}
rowEnd--;
}
// 左边
if (colStart <= colEnd) {
for (int i = rowEnd; i >= rowStart; i--) {
matrix[i][colStart] = num++;
}
colStart++;
}
}
// 输出结果
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
<h2>代码解释</h2>
<p>代码通过四个循环实现螺旋状填充矩阵:上边、右边、下边、左边。每个循环填充矩阵的一条边,并更新起始行、结束行、起始列、结束列。</p>
<ul>
<li><code>rowStart</code> 和 <code>rowEnd</code> 分别表示填充的起始行和结束行。</li>
<li><code>colStart</code> 和 <code>colEnd</code> 分别表示填充的起始列和结束列。</li>
<li><code>num</code> 用于跟踪当前要填充的数字。</li>
</ul>
<p>代码首先填充矩阵的上边,然后填充右边,接着填充下边,最后填充左边。循环执行直到起始行大于结束行或起始列大于结束列。</p>
<h2>运行结果</h2>
<p>输入:3</p>
<p>输出:
1 2 3
8 9 4
7 6 5</p>
<p>本文详细解释了生成螺旋矩阵的 Java 代码,并提供了运行结果示例。希望本文对您有所帮助。</p>
原文地址: https://www.cveoy.top/t/topic/pkNL 著作权归作者所有。请勿转载和采集!