Java程序显示Floyd三角形


在这篇文章中,我们将了解如何使用Java显示Floyd三角形Floyd三角形是一个流行的直角三角形数组,由自然数组成。它的形成是从三角形顶部的数字1开始,然后随着向下移动到三角形的行,每个后续数字增加1。

第一行只包含一个数字1,并且每一后续行都比前一行多一个数字。三角形有n行,其中n可以是任何正整数。

三角形中的值的总数将是前n个自然数的和,可以使用公式S = n/2 * (2a + (n-1) d)计算,其中S是级数的和,n是级数中的项数,a是级数中的第一项,d是项之间的公差。

然而,在Floyd三角形中,第一项始终为1,公差为1,因此我们可以将此公式简化为

S= n/2 * (2 + n – 1) = n/2 * (n+1)

因此,具有n行的Floyd三角形中的值的数目为n/2 * (n+1)

如果有5行,即n=5,则三角形中的值的总数为

5/2 * (5+1) = 15

问题陈述

编写一个Java程序来显示Floyd三角形。

输入

rows = 5 (Number of rows n)

输出

1 
2 3
4 5 6
7 8 9 10
11 12 13 14 15

Floyd三角形的算法

以下是显示Floyd三角形的算法:

  • 输入行数n。
  • 将变量number初始化为1。
  • 对于从1到n的每一行i,执行以下操作
    • 对于行中的每个元素j(从1到i),执行以下操作
      • i. 打印number的当前值。
      • ii. 将number加1。
    • 打印换行符以移动到下一行。

不同的方法

以下是显示Floyd三角形的不同方法:

使用for循环

For循环是一种控制流语句,它重复执行一组指令。它包含3个部分,分别是初始化语句、布尔条件更新语句。执行循环体后,将执行更新语句,并再次检查条件,直到布尔条件变为false。

示例

下面给出使用嵌套for循环显示Floyd三角形的Java实现:

public class FloydTriangle {
   public static void main(String[] args) {
      // declare the number of rows 
      int rows = 5;
      int num = 1;  
      for (int i = 1; i <= rows; i++) {
         for (int j = 1; j <= i; j++) {
            System.out.print(num + " ");
            num++;
         }
         System.out.println();
      }
   }
}

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15

使用while循环

While循环是另一种形式的控制流语句,它根据预定义的布尔条件重复执行,并在条件为false时终止自身。

示例

public class FloydTriangle {
   public static void main(String[] args) {
      int rows = 5;
      int number = 1;
      int i = 1;   
      while (i <= rows) {
         int j = 1;
         while (j <= i) {
            System.out.print(number + " ");
            number++;
            j++;
         }
         System.out.println();
         i++;
      }
   }
}

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15

使用do-while循环

一个do-while循环与while循环非常相似,只是它至少执行一次。这是因为条件在每次迭代结束时进行测试。如果条件为true,循环将继续,并在条件为false时终止自身。这里,行数预定义为10。

示例

public class FloydTriangle {
   public static void main(String[] args) {
      int rows = 10;
      int number = 1;
      int i = 1;   
      do {
         int j = 1;
         do {
            System.out.print(number + " ");
            number++;
            j++;
         } while (j <= i);
         System.out.println();
         i++;
      } while (i <= rows);
   }
}

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 31 32 33 34 35 36 
37 38 39 40 41 42 43 44 45 
46 47 48 49 50 51 52 53 54 55

结论

总之,Floyd三角形是由自然数组成的直角三角形,每一行包含的元素数量递增。您可以使用不同类型的循环(如forwhiledo-while循环)在Java中生成Floyd三角形。每个循环版本都遵循一个简单的逻辑:从1开始,在遍历每一行时打印并递增数字。此过程持续进行,直到三角形以所需的行数形成,使实现既简单又高效。

更新于:2024年10月18日

588 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告