杨辉三角是一个经典的数学问题,它的特点是每一行的数字都是上一行相邻两个数字之和。下面我们将通过Java代码来实现一个10行的杨辉三角,并打印出来。
首先,我们需要创建一个二维数组来存储杨辉三角的数据。由于杨辉三角的每一行的元素个数等于行数,所以我们可以使用一个一维数组的数组(即二维数组)来表示。具体来说,arr[i][j]
表示第i行的第j个元素。
接下来,我们需要给这个二维数组赋值。根据杨辉三角的性质,我们可以得出以下规律:
- 第一行有1个元素,即
arr[0][0] = 1
; - 每一行的第一个元素和最后一个元素都是1,即
arr[i][0] = arr[i][i] = 1
; - 从第三行开始,对于非第一个元素和最后一个元素的元素,它们的值等于上一行的左上角元素与上方元素的和,即
arr[i][j] = arr[i-1][j-1] + arr[i-1][j]
。
最后,我们遍历这个二维数组,打印出每一行的元素。
下面是完整的Java代码实现:
public class YangHui {
public static void main(String[] args) {
// 1、定义一个二维数组,动态初始化方式
int[][] arr = new int[10][];
for (int i = 0; i < arr.length; i++) {
// 给二维数组的每一个元素重新new一个数组,arr[0]指的是地址,第一行1个,第二行2个,.....元素
arr[i] = new int[i + 1];
// 2、给数组元素赋值
// 2.1、给首元素与末元素赋值
arr[i][0] = arr[i][i] = 1;
// 2.2、给给其他元素赋值,第二行开始赋值
if (i > 1) {
// 每行的末元素已经赋值,所以这里不需要遍历到末元素,需-1
for (int j = 1; j < arr[i].length - 1; j++) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
// 3、遍历数组,打印结果
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
运行这段代码,你将会看到如下输出:
这就是使用二维数组打印杨辉三角的方法。希望这篇文章能帮助你理解如何使用Java实现这个问题。