Java 显示Floyd三角形
Floyd’s三角形是一个由自然数组成的流行的直角三角形数组。其名称源自其创始人Robert W. Floyd,他是一位杰出的计算机科学家。它的形成是从三角形的顶部开始用数字1,然后在每一行向下移动时逐个递增。
在本文中,我们将看到如何使用Java程序显示Floyd的三角形。
但在进行Java实现之前,让我们更加了解Floyd的三角形。
第一行只包含一个数字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)
因此,Floyd三角形的n行中的总数值为n/2 * (n+1)。
如果有5行,即n =5,那么三角形中的总数值为:
5/2 * (5+1) = 15
步骤
输入:行数n
- 1. 初始化一个变量“number”为1
-
2. 对于i从1到n,进行以下操作 −
- a. 对于j从1到i,进行以下操作 −
- i. 打印“number”的值
-
ii. 将“number”加1
-
b. 打印一个换行符以移动到下一行
- a. 对于j从1到i,进行以下操作 −
使用for循环
for循环是一种控制流语句,它重复执行一组指令。它包含三个部分,分别是初始化语句、布尔条件和更新语句。在执行完循环体后,执行更新语句并再次检查条件,直到布尔条件变为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循环是另一种控制流语句,它根据预定义的布尔条件重复执行并在条件为假时终止。
示例
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
结论
Floyd’s三角形是一个简单的示例,用于演示和练习循环和模式的基本概念。它不仅限于Java实现,经常用于教授C++、Java、C#和许多其他编程语言。该三角形由n行组成,其中n可以在编写代码时预先定义并存储为整数。可以进一步优化,要求用户输入n的值或行数(通过scanner类或任何其他输入方法的帮助),这将给学习者提供更好的练习机会。总的来说,这个程序是在Java中生成Floyd’s三角形的一种简单而高效的方法。在定义循环条件时应注意可能进入无限循环的情况。