【Java】——使用二维数组打印杨辉三角

发布于:2024-08-23 ⋅ 阅读:(128) ⋅ 点赞:(0)

        杨辉三角是一个经典的数学问题,它的特点是每一行的数字都是上一行相邻两个数字之和。下面我们将通过Java代码来实现一个10行的杨辉三角,并打印出来。

        首先,我们需要创建一个二维数组来存储杨辉三角的数据。由于杨辉三角的每一行的元素个数等于行数,所以我们可以使用一个一维数组的数组(即二维数组)来表示。具体来说,arr[i][j]表示第i行的第j个元素。

接下来,我们需要给这个二维数组赋值。根据杨辉三角的性质,我们可以得出以下规律:

  1. 第一行有1个元素,即arr[0][0] = 1
  2. 每一行的第一个元素和最后一个元素都是1,即arr[i][0] = arr[i][i] = 1
  3. 从第三行开始,对于非第一个元素和最后一个元素的元素,它们的值等于上一行的左上角元素与上方元素的和,即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实现这个问题。

        


网站公告

今日签到

点亮在社区的每一天
去签到