- 效果图:
- 思路:
第一行有 1 个元素, 第 n 行有 n 个元素
每一行的第一个元素和最后一个元素都是 1
从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
- 代码实现:
public class YangHuiTest {
public static void main(String[] args) {
// 1.初始化二维数组
int[][] yangHui = new int[10][];
for (int i = 0; i < yangHui.length; i++) {
// 给每一行定义(角标+1)的长度
yangHui[i] = new int[i + 1];
// 2.给数组元素赋值
// 2.1给每一行首元素和尾元素赋值
yangHui[i][0] = yangHui[i][i] = 1;
// 2.2给每一行非首元素和非尾元素赋值
for (int j = 1; j < yangHui[i].length - 1; j++) {
// 等于上一行对应元素加它左边的元素
yangHui[i][j] = yangHui[i - 1][j] + yangHui[i - 1][j - 1];
}
}
// 遍历输出二维数组的元素,打印外层数组元素长度值的行数,从0开始是为了后面输出
for (int i = 0; i < yangHui.length; i++) {
// 打印内层数组元素长度值的列数,从0开始是为了后面输出
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j] + "\t");
}
System.out.println();
}
}
}