输出螺旋方阵,采用二维数组存储。螺旋方阵将从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。用Java
时间: 2024-09-13 17:05:49 浏览: 90
在Java中生成一个螺旋方阵,你可以遵循以下步骤:
1. 初始化一个二维数组,大小为n×n。
2. 使用四个变量来控制边界:左边界`left`、右边界`right`、上边界`top`和下边界`bottom`。
3. 使用一个变量来控制当前填充的数字。
4. 从左上角开始,向外螺旋遍历并填充数字,当达到边界时相应地调整边界,并在调整后更新填充数字。
5. 当所有边界都重合时,螺旋完成。
下面是具体的Java代码实现:
```java
public class SpiralMatrix {
public static void main(String[] args) {
int n = 4; // 螺旋方阵的大小
int[][] matrix = generateSpiralMatrix(n);
printMatrix(matrix);
}
public static int[][] generateSpiralMatrix(int n) {
int[][] matrix = new int[n][n];
int num = 1;
int top = 0, bottom = n - 1, left = 0, right = n - 1;
while (top <= bottom && left <= right) {
// 从左到右填充上边界
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++;
// 从上到下填充右边界
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--;
// 从右到左填充下边界
if (top <= bottom) {
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num++;
}
bottom--;
}
// 从下到上填充左边界
if (left <= right) {
for (int i = bottom; i >= top; i--) {
matrix[i][left] = num++;
}
left++;
}
}
return matrix;
}
public static void printMatrix(int[][] matrix) {
for (int[] row : matrix) {
for (int value : row) {
System.out.print(value + "\t");
}
System.out.println();
}
}
}
```
这段代码会生成一个`n`×`n`的螺旋方阵,并将其打印出来。你可以通过修改`n`的值来生成不同大小的螺旋方阵。
阅读全文