Java 程序显示弗洛伊德三角形

javaobject oriented programmingprogramming

弗洛伊德三角形是一种流行的直角三角形阵列,由自然数组成。该名称来自其创始人罗伯特·W·弗洛伊德,他是一位杰出的计算机科学家。它由三角形顶部的数字 1 开始,然后随着三角形行向下移动,每个后续数字都增加 1。

在本文中,我们将了解如何借助 Java 程序显示弗洛伊德三角形。

但在继续 Java 实现之前,让我们更深入地了解弗洛伊德三角形。

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

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

但是,在弗洛伊德三角形中,第一个项始终为 1,而公差为 1,因此我们可以将此公式简化为:

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

因此,具有 n 行的弗洛伊德三角形中的值总数为 n/2 * (n+1)。

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

5/2 * (5+1) = 15

算法

输入:行数 n

  • 1. 将变量"number"初始化为 1

  • 2. 对于从 1 到 n 的 i,执行以下操作 -

    • a. 对于从 1 到 i 的 j,执行以下操作 -

      • i. 打印"number"的值

      • ii. 将"number"增加 1

    • b.打印换行符以移动到下一行

使用 for 循环

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

下面给出了使用嵌套 for 循环显示弗洛伊德三角的 Java 实现。

示例

public class FloydTriangle {
   public static void main(String[] args) {
      // 声明行数
      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 循环是另一种形式的控制流语句,它根据预定义的布尔条件重复执行,并在条件为假时自行终止。

示例

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 循环非常相似,只不过它至少执行一次,原因很简单,每次迭代结束时都会测试条件。如果条件为真,循环将继续,一旦条件为假,循环就会自行终止。此处,行数预定义为 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

结论

弗洛伊德三角形是一个简单的示例,用于演示和练习循环和模式等基本概念。它不仅限于 Java 实现,还经常用于教授 C++、Java、C# 和许多其他编程语言。三角形由 n 行组成,其中 n 可以在编写代码时预定义并存储在整数中。它可以进一步优化,要求用户输入 n 的值或行数(借助扫描仪类或任何其他输入方法),这将为学习者提供更好的练习。总的来说,这个程序是一种用 Java 生成弗洛伊德三角形的简单而有效的方法。定义循环条件时应小心谨慎,因为它可能会进入无限循环。


相关文章