Pyramidal Number in Java

2025 年 5 月 9 日 | 阅读 9 分钟

在本节中,我们将学习什么是金字塔形数,并创建Java 程序来检查给定的数字是否是金字塔形数金字塔形数程序经常在 Java 编码面试和学术中被问到。

金字塔形数有两种类型

  1. 平方金字塔形数
  2. 金字塔数模式

平方金字塔形数

前 n 个自然数的平方和称为平方金字塔形数。前几个平方金字塔形数的列表是 1, 5, 14, 30, 55, 91, 140, 204, 285, 385, 506, …

如果我们尝试以几何形式定义平方金字塔形数,这些数字代表堆叠的球的数量,以形成一个以每个数字的平方为底的金字塔。

给定一个数字 b (1 <= b <= 1000000000)。如果 b 是前 n 个自然数的平方和,则打印 n,否则打印 -1。

金字塔数可以用物理空间中的给定数量的球和方形框架来建模,该框架固定了形成底座的球的数量,即 n2。它们还可以解决计算 n × n 网格中正方形数量的问题。

Pyramidal Number in Java

平方数示例

用户输入:55

检查后输出:5

说明:1*1 + 2*2 + 3*3 + 4*4 + 5*5 = 55

示例

用户输入:26

检查后输出:-1

金字塔形数 Java 程序

一个 Java 程序,用于识别用户输入的数字是否为金字塔形数。

PyramidalNumberExample.java

输出

Enter a number: 14
Position of Pyramidal number 14 is: 3

在上面的 Java 程序中,使用 Scanner 类的 `nextInt()` 方法从用户那里接受一个输入 s。定义了一个方法 findPyramid() 来检查一个数字是否是金字塔形数。结果使用 `main()` 方法显示在控制台上。

一个 Java 程序,用于识别金字塔形数在从 1 开始的金字塔形数系列中的位置。

SquarePyramidalNumberExample.java

输出

Square Pyramidal Number at position 5 = 55.0

在上面的 Java 代码中,使用公式计算指定位置 n 处的金字塔形数,并将其值存储在双精度变量 s 中。使用 `print()` 方法将输出显示在控制台上。

借助金字塔形数,我们还可以打印金字塔数模式。

金字塔数模式

金字塔数模式是最常见的面试问题之一。它是一种以金字塔形状排列数字的方法。

数字可以使用不同的模式以金字塔形状排列。其中一些在此进行了讨论。

Pyramidal Number in Java

金字塔数模式 Java 程序

模式 1 的 Java 程序

PyramidPattern1.java

输出

Enter number of rows for the Pyramid:
9
Pyramid Pattern: 
         1 
        2 2 
       3 3 3 
      4 4 4 4 
     5 5 5 5 5 
    6 6 6 6 6 6 
   7 7 7 7 7 7 7 
  8 8 8 8 8 8 8 8 
 9 9 9 9 9 9 9 9 9

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 1。

模式 2 的 Java 程序

PyramidPattern2.java

输出

Enter number of rows for the Pyramid:
9
Pyramid Pattern: 
         1 
        1 2 
       1 2 3 
      1 2 3 4 
     1 2 3 4 5 
    1 2 3 4 5 6 
   1 2 3 4 5 6 7 
  1 2 3 4 5 6 7 8 
 1 2 3 4 5 6 7 8 9

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 1。

模式 3 的 Java 程序

PyramidPattern3.java

输出

Enter number of rows for the Pyramid:
9
Pyramid Pattern: 
         * 
        * * 
       * * * 
      * * * * 
     * * * * * 
    * * * * * * 
   * * * * * * * 
  * * * * * * * * 
 * * * * * * * * *

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 1。

模式 4 的 Java 程序

PyramidPattern4.java

输出

Enter number of rows for the pyramid:
9
Pyramid Pattern: 
                  1 
                1 2 1 
              1 2 3 2 1 
            1 2 3 4 3 2 1 
          1 2 3 4 5 4 3 2 1 
        1 2 3 4 5 6 5 4 3 2 1 
      1 2 3 4 5 6 7 6 5 4 3 2 1 
    1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 
  1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 1。

模式 5 的 Java 程序

PyramidPattern5.java

输出

Enter number of rows for the pyramid:
9
Pyramid Pattern: 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
  1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 
    1 2 3 4 5 6 7 6 5 4 3 2 1 
      1 2 3 4 5 6 5 4 3 2 1 
        1 2 3 4 5 4 3 2 1 
          1 2 3 4 3 2 1 
            1 2 3 2 1 
              1 2 1 
                1

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 nrows

模式 6 的 Java 程序

PyramidPattern6.java

输出

Enter number of rows for the pyramid:
9
Pyramid Pattern: 
                  9 
                8 9 8 
              7 8 9 8 7 
            6 7 8 9 8 7 6 
          5 6 7 8 9 8 7 6 5 
        4 5 6 7 8 9 8 7 6 5 4 
      3 4 5 6 7 8 9 8 7 6 5 4 3 
    2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
  1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

在上面的代码中,金字塔模式是通过嵌套的 for 循环构建的。金字塔的行数从用户那里接受。 rowCount 被初始化为 1。

在本文中,我们讨论了 Java 中的平方金字塔形数是什么,一个理解其背后逻辑的示例,一个用于识别金字塔形数的 Java 程序,以及用于不同金字塔数模式的 Java 程序。