Java 生成螺旋矩阵:代码示例及运行结果

本文将提供一个用 Java 代码实现螺旋矩阵生成的示例,并展示了运行结果。该代码适用于任何正整数 n,可生成 n x n 的螺旋矩阵。

代码示例

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();
        scanner.close();
        
        int[][] matrix = generateSpiralMatrix(n);
        
        // 打印方阵
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(matrix[i][j] + "\t");
            }
            System.out.println();
        }
    }

    private static int[][] generateSpiralMatrix(int n) {
        int[][] matrix = new int[n][n];
        int num = 1;
        int rowStart = 0;
        int rowEnd = n - 1;
        int colStart = 0;
        int colEnd = n - 1;
        
        while (num <= n * n) {
            // 上行(从左到右)
            for (int i = colStart; i <= colEnd; i++) {
                matrix[rowStart][i] = num++;
            }
            rowStart++;
            
            // 右列(从上到下)
            for (int i = rowStart; i <= rowEnd; i++) {
                matrix[i][colEnd] = num++;
            }
            colEnd--;
            
            // 下行(从右到左)
            for (int i = colEnd; i >= colStart; i--) {
                matrix[rowEnd][i] = num++;
            }
            rowEnd--;
            
            // 左列(从下到上)
            for (int i = rowEnd; i >= rowStart; i--) {
                matrix[i][colStart] = num++;
            }
            colStart++;
        }
        
        return matrix;
    }
}

运行结果

假设输入整数 n 为 4,运行结果如下:

请输入整数 n:4
1	2	3	4	
12	13	14	5	
11	16	15	6	
10	9	8	7

说明

该代码通过循环遍历矩阵边界,并按顺时针方向填充数字。具体步骤如下:

  1. 初始化矩阵、起始行、结束行、起始列、结束列以及数字计数器。
  2. 循环遍历,每次循环填充矩阵的一圈。
  3. 填充上行、右列、下行、左列,每次填充完后更新起始行、结束行、起始列、结束列。
  4. 当数字计数器达到 n * n 时,循环结束,返回生成的矩阵。

方阵中的数字按顺时针方向螺旋填充,从 1 开始,填充到 n * n。

希望本文能帮助您理解如何用 Java 代码生成螺旋矩阵。


原文地址: https://www.cveoy.top/t/topic/pkOr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录