怎样用Java写螺旋填数
时间: 2024-03-02 18:52:57 浏览: 21
螺旋填数是一种常见的算法题目,可以使用Java来实现。具体实现方法如下:
```java
public class SpiralFill {
public static void main(String[] args) {
int n = 5; // n 表示矩阵的大小,这里假设为 5
int[][] matrix = new int[n][n]; // 创建一个 n * n 的二维数组
int num = 1; // 初始化填充值为 1
int row = 0, col = 0; // 初始位置为 (0, 0)
int layer = 0; // 当前层数为 0
// 依次填充矩阵中的每个位置
while (num <= n * n) {
// 从左向右填充
while (col < n - layer) {
matrix[row][col++] = num++;
}
col--; row++;
// 从上向下填充
while (row < n - layer) {
matrix[row++][col] = num++;
}
row--; col--;
// 从右向左填充
while (col >= layer) {
matrix[row][col--] = num++;
}
col++; row--;
// 从下向上填充
while (row > layer) {
matrix[row--][col] = num++;
}
row++; col++;
// 进入下一层
layer++;
}
// 输出填充好的矩阵
for (int[] rowArr : matrix) {
for (int numVal : rowArr) {
System.out.print(numVal + " ");
}
System.out.println();
}
}
}
```
上述代码中,我们先创建了一个 n * n 的二维数组,然后根据螺旋填数的规则依次填充矩阵中的每个位置。最后输出填充好的矩阵即可。