Java 生成螺旋形填充方阵代码示例
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();
int[][] matrix = generateMatrix(n);
System.out.println("生成的螺旋形填充方阵为:");
printMatrix(matrix);
}
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 (num <= n * n) {
// 从左到右填充
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++;
// 从上到下填充
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--;
// 从右到左填充
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num++;
}
bottom--;
// 从下到上填充
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 num : row) {
System.out.printf("%2d ", num);
}
System.out.println();
}
}
}
运行结果示例:
请输入一个整数 n:4
生成的螺旋形填充方阵为:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
原文地址: https://www.cveoy.top/t/topic/pkOp 著作权归作者所有。请勿转载和采集!