杨辉三角

杨辉三角

背景知识

一、杨辉三角的介绍
百度百科对于杨辉三角是这样介绍的:

在这里插入图片描述

二、杨辉三角的算法思想
(此图片来源于网络)

img

杨辉三角的两个腰边的数都是 1,从第3行起,除第一个数和最后一个数外,其它位置的数都是上顶上两个数之和。

代码实现


public class YangHuiTriangle1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入要打印的行数:");
        int n = scanner.nextInt();
        // 打印杨辉三角
        getTriangle(n);
    }
private static int[][] getTriangle(int n) {
    // 创建一个二维数组,此二维数组用来存放杨辉三角中每一行的值
    int[][] array = new int[n][n];
    // 给数组元素赋值
    for (int i = 0; i < array.length; i++) {
        // 每一行的值
        array[i] = new int[i + 1];
        // 给首末元素赋值
        array[i][0] = array[i][i] = 1;
        // 给每行的非首末元素赋值
        if (i > 1) {
            for (int j = 1; j < array[i].length - 1; j++) {
                array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
            }
        }
    }
    // 遍历二维数组
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[i].length; j++) {
            System.out.print(array[i][j] + "\t");
        }
        System.out.println();
    }
    return array;
}
}

总结:

1.总结规律从第三行的第二个元素开始有规律比如:

第二行的2 array[2][1] = array[1][0]+array[1][1];
image-20210305205827202

2.因为规定了是从第三行开始所以不用考虑数组i-1<0

 if (i > 1) {
                for (int j = 1; j < array[i].length - 1; j++) {
                    array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
                }
 }

3.第0行是一个元素,定义每行的数据

这个的意思是给每一行的数组定义一个长度,举上面的例子,比如i=0时,说明二维数组的第一行的长度为1,当i=1时,二维数组的第二行为的长度为2。。。。,依次类推

// 每一行的值
            array[i] = new int[i + 1];
           

JAVA中的二维数组的定义及使用

img
posted @ 2021-03-09 15:20  记录学习Blog  阅读(724)  评论(0编辑  收藏  举报