Java中用杨辉三角算法生成二维数组的核心是:每行首尾为1,中间元素等于上一行相邻两数之和;需用不规则数组初始化,即先声明int[rows][],再对每行triangle[i] = new int[i+1];随后设trianglei = trianglei = 1,并从i=2开始、j=1到i-1计算trianglei = trianglei-1 + trianglei-1。

Java 中用杨辉三角算法生成二维数组,核心是按行逐层计算每个位置的值:每行首尾为 1,中间元素等于上一行相邻两数之和。关键在于控制好数组索引边界,避免越界,并合理初始化二维数组大小。
确定二维数组大小并初始化
杨辉三角第 n 行有 n 个元素(从第 1 行开始计),所以若要生成前 rows 行,需声明一个 rows × rows 的二维数组(或使用不规则数组,即每行长度不同)。推荐用不规则方式更节省空间:
- 先创建一维数组引用数组:
int[][] triangle = new int[rows][]; - 再对每行单独初始化:
triangle[i] = new int[i + 1];(第 i 行索引从 0 开始,共 i+1 个元素)
填充首尾元素为 1
每行第一个和最后一个元素固定为 1:
triangle[i][0] = 1;-
triangle[i][i] = 1;(因为第 i 行有 i+1 个元素,最大列索引是 i)
计算中间元素(基于上一行)
从第 2 行(i = 2,即索引 i = 2)开始,中间列 j(从 1 到 i−1)满足:
立即学习“Java免费学习笔记(深入)”;
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];- 注意:i 从 2 开始循环,j 从 1 到 i−1,确保上一行对应位置存在
完整可运行示例
生成前 5 行杨辉三角:
int rows = 5;
int[][] triangle = new int[rows][];
for (int i = 0; i < rows; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
// 打印验证
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}


















