杨辉三角形
实例说明:
杨辉三角形由数字排列,可以把它看作一个数字表,其基本特性是两侧数值均为1,其它位置的数值是其正上方的数值与左上角数值之和。
实现过程
首先在类的主方法中创建一个二维数组,并且指定二维数组的第一维长度,这个数组用于存放杨辉三角形的数值表,通过双层for循环来实现第二维数组的长度,然后计算整个数组的每个元素的值。
代码:
public class YangHui {
public static void main(String[] args) {
int f[][]=new int[10][];
//遍历数组的第一层
for (int i = 0; i < ; i++) {
f[i]=new int[i+1];//初始化第二层的数组大小
//遍历第二层数组
for(int j=0;j<=i;j++) {
if (i==0||j==0||j==i) {
f[i][j]=1; //将两侧数组元素值赋为1
}
else {
f[i][j]=f[i-1][j]+f[i-1][j-1];
}
(f[i][j]+"\t");//输出数组元素
}
(); //换行
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
运行结果:
解题思路:
(1)在创建二维数组时,其第一维的长度即是要输出杨辉三角形的行数。例如,在本实例中,要输出10行的杨辉三角形就可以将其第一维的长度设置为10.
(2)java语言中的二维数组其实是每个元素都是一个一维数组的一维数组,所以第二维的长度可以任意,就像本例中那样。这比其他语言更灵活而且多维数组也是如此。
技术要点:
杨辉三角型的公式包括两个部分,一部分是两侧数值都是1,也就是说二维数组的f[0][0]、f[i][0]或者f[i][i]元素值为1,另一部分是其它位置的数值是其正上方的数值与左上角数值之和,也就是
f[i][j]=f[i-1][j]+f[i-1][j-1].
注: 在二维数组中,第1个下标值代表的是行数,第2个下标值代表的是列数,即f[i][0]代表的是第i行第0列的元素