【Java——打印杨辉三角】

文章目录

    • (一)编程实现
    • (二)讲解知识点
        • 1、指定二维数组行数与列数
        • 2、指定二维数组行数,不指定列数
        • 3、直接使用嵌套大括号“{}”静态初始化二维数组
    • (三)拓展练习
        • 任务1、求二维数组最值及位置
        • 任务2、查询元素是否在二维数组里

  • 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623 ~ 1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。

【Java——打印杨辉三角】_第1张图片
【Java——打印杨辉三角】_第2张图片

  • 二项式定理,又称牛顿二项式定理,由艾萨克牛顿于1664-1665年提出。
    在这里插入图片描述

(一)编程实现

  • 思路:用二维数组来保存杨辉三角形的元素
    【Java——打印杨辉三角】_第3张图片
  • net.huawei.p02.t08包里创建Task08
    【Java——打印杨辉三角】_第4张图片
public class Task08 {
    public static void main(String[] args) {
        // 声明部分(三角形二维数组)
        int[][] a = new int[15][];
        // 每行元素个数跟行数一致
        for (int i = 0; i < a.length; i++) {
            a[i] = new int[i + 1];
        }

        // 边界赋值
        for (int i = 0; i < a.length; i++) {
            a[i][0] = 1; // 左边界
            a[i][i] = 1; // 右边界(对角线)
        }
        // 内部元素采用递推公式计算
        for (int i = 2; i < a.length; i++) {
            for (int j = 1; j < i; j++) {
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }

        // 输出杨辉三角形
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(a[i][j] + "\t");
            }
            System.out.println();
        }
    }
}
  • 运行程序,查看结果
    【Java——打印杨辉三角】_第5张图片

  • 杨辉三角形的数据没有问题,但是格式不好看,需要处理一下,使之显示为三角形。
    【Java——打印杨辉三角】_第6张图片

  • 再次运行程序,查看结果
    【Java——打印杨辉三角】_第7张图片

  • 将杨辉三角形显示为等腰三角形
    【Java——打印杨辉三角】_第8张图片

  • 利用循环耗时来实现打字机效果
    【Java——打印杨辉三角】_第9张图片

  • 这种实现动画效果的方式不好,浪费资源,应该采用多线程来实现动画效果。

(二)讲解知识点

1、指定二维数组行数与列数

int[][] xx = new int[3][4];

  • 上面的代码相当于定义了一个3*4的二维数组,这个二维数组的长度为3,可以将它看成3个int[]类型的一维数组,每个一维数组中的元素又是一个长度为4的一维数组。
    【Java——打印杨辉三角】_第10张图片
2、指定二维数组行数,不指定列数

int[][] xx = new int[3][];

  • 第二种方式和第一种类似,只是数组中每个元素的长度不确定。
    【Java——打印杨辉三角】_第11张图片
3、直接使用嵌套大括号“{}”静态初始化二维数组

int[][] xx = {{1, 2}, {3, 4, 5, 6}, {7, 8, 9}};

  • 上面的二维数组中定义了三个元素,这三个元素都是数组,分别为{1, 2}、{3, 4, 5, 6}、{7, 8, 9} 。
    【Java——打印杨辉三角】_第12张图片

(三)拓展练习

任务1、求二维数组最值及位置
  • 产生一个3行4列的随机二维数组
    【Java——打印杨辉三角】_第13张图片
任务2、查询元素是否在二维数组里
  • 可以静态初始化一个二维数组
    【Java——打印杨辉三角】_第14张图片

你可能感兴趣的:(Java课程学习,java,intellij-idea)