Java 打印螺旋图案的程序

2025年1月7日 | 5 分钟阅读

螺旋模式(或螺旋形矩阵)在 Java 面试和学术中经常被问到。在本节中,我们将创建一个Java 程序来创建螺旋模式螺旋矩阵

什么是螺旋矩阵或螺旋模式?

螺旋模式是一种可以表示为矩阵形式的数字模式。它由一个二维数组 (m*n) 组成。模式可能以两种形式表示,顺时针或逆时针。

为了以螺旋模式(顺时针)打印矩阵,我们需要遵循以下遍历顺序

  • 从左到右(第一行)
  • 从上到下(最后一列)
  • 从右到左(最后一行)
  • 从下到上(第一列)

为了打印螺旋模式(逆时针),请反转上述遍历顺序。

让我们通过下图来理解螺旋模式的图示。

Java program to print the following spiral pattern on the console

例如,考虑以下 5*5 矩阵

Java program to print the following spiral pattern on the console

上面的矩阵可以表示为螺旋形式,如下所示

Java program to print the following spiral pattern on the console

我们可以采用任何一种方法来打印螺旋模式

  • 迭代
  • 递归

在本节中,我们一直使用迭代方法。

应该采用什么方法?

  • 首先,创建一个大小为 n 的二维数组。
  • 声明变量来存储数组的边界。同时声明一个变量来存储打印螺旋所需的剩余空间。
  • 为了在数组上移动,请使用 **l, r, u,** 和 **d** 字母,分别代表移动方向 **左、右、上** 和 **下**。
  • 执行从 1 到 n*2 的循环,以螺旋形式填充数组。

螺旋模式 Java 程序

SpiralPaternExample1.java

输出

Java program to print the following spiral pattern on the console

让我们来看另一个螺旋模式。

在下面的程序中,我们使用了以下方法

从 i = 1 和 j = 1 开始索引。可以观察到,所需矩阵的每个值都将是 **max(abs(i - n), abs(j - n)) + 1**。

SpiralPatternExample2.java

输出

Java program to print the following spiral pattern on the console

SpiralPatternExample3.java

输出

Java program to print the following spiral pattern on the console

以螺旋形式打印给定矩阵

有许多方法可以用于以螺旋形式打印矩阵。

SpiralToMatrixExample.java

输出

10 20 30 40 50 60 120 180 170 160 150 140 130 70 80 90 100 110