给定一个整数m生成一个以1开始的n*n的螺型填充矩阵用JAVA并实现
时间: 2024-05-30 11:16:54 浏览: 33
public class SpiralMatrix {
public static void main(String[] args) {
int m = 5; // 生成5*5的矩阵
int[][] matrix = generateMatrix(m);
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
}
public static int[][] generateMatrix(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;
}
}