文章目录

  • 任务8、打印杨辉三角形
    • (一)编程实现
    • (二)拓展练习
      • 任务1、求二维数组最值及位置
      • 任务2、查询元素是否在二维数组里

任务8、打印杨辉三角形

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

  • 二项式定理,又称牛顿二项式定理,由艾萨克牛顿于1664-1665年提出。

(一)编程实现

  • 思路:用二维数组来保存杨辉三角形的元素
  • 边界:a[i][0]=1,a[i][i]=1,i∈[0,n−1]边界: a[i] [0] = 1, a[i][i] = 1,i ∈ [0,n-1]边界:a[i][0]=1,a[i][i]=1,i∈[0,n−1]
  • 内部:a[i][j]=a[i−1][j−1]+a[i−1][j],i∈[2,n],j∈[1,i−1]内部:a[i][j] = a[i-1][j-1]+a[i-1][j],i ∈ [2,n],j ∈ [1,i-1]内部:a[i][j]=a[i−1][j−1]+a[i−1][j],i∈[2,n],j∈[1,i−1]
  • 代码如下:
package p01.T06;/*** 功能;* 作者:刘金花* 日期:2022 年06月08日*/
public class Task06_ {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();}}
}
  • 运行代码,查看结果:
  • 杨辉三角形的数据没有问题,但是格式不好看,需要处理一下,使之显示为三角形。
  • 再运行程序,查看结果
  • 将杨辉三角形显示为等腰三角形

  • 利用循环耗时来实现打字机效果
package p01.T06;/*** 功能;打印杨辉三角形* 作者:刘金花* 日期:2022 年06月08日*/
public class Task06_ {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 = 1; j < 43 - 3 * i; j++) {System.out.print(" ");}for (int j = 0; j <= i; j++) {System.out.print(String.format("%-5d",a[i][j]));for (long k = 1; k < 20_0000_0000L; k++);}System.out.println();}}
}
  • 代码在上面,自己测试。
  • 这种实现动画效果的方式不好,浪费资源,应该采用多线程来实现动画效果。

(二)拓展练习

任务1、求二维数组最值及位置

  • 产生一个3行4列的随机二维数组

任务2、查询元素是否在二维数组里

  • 可以静态初始化一个二维数组
  • 面向过程 (POP - Procedure-Oriented Programming):操作和数据是分开。比如要进行一个开窗操作。采用面向过程的思路:定义一个window数据,再定义一个open()函数,此时,要打开窗户,调用open()函数,传入窗口数据window,即open(window),相当于是一个动宾结构
  • 面向对象(OOP - Object-Oriented Programming):操作和数据是封装到类里的。比如要进行一个开窗操作。采用面向对象的思路:定义一个Window类,在类里定义一个open()方法,此时,要打开窗户,首先基于Window类创建窗口对象window,调用window对象的open()方法, 即window.open(),相当于是一个主谓结构

任务8、打印杨辉三角形相关推荐

  1. Python案例:打印杨辉三角形

    文章目录 一.杨辉三角形 二.二项式定理 三.编程打印杨辉三角形 1.采用二维列表来处理杨辉三角 2.编写程序 - 杨辉三角.py 3.运行程序,查看结果 4.等腰三角形格式输出杨辉三角形 一.杨辉三 ...

  2. c语言学习-打印杨辉三角形(要求打印出10行)

    打印杨辉三角形(要求打印出10行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 -- 程序流程图: 代码: #include<stdio.h> ...

  3. 【C语言】打印杨辉三角形

    文章目录 1.概念理解 2.代码实现 3.输出示例 1.概念理解 在屏幕上打印 1 1 1 1 2 1 1 3 3 1 - 2.代码实现 #include<stdio.h>int main ...

  4. 【小甲鱼编程题05】打印杨辉三角形

    1.打印杨辉三角形,编写代码,让程序实现如下: 可知:杨辉三角形第i行第j列的值 = 第(i - 1)行(j - 1)列的值 + 第(i - 1)行第(j)列的值 ①个人思路: 创建一个下三角列表,初 ...

  5. 练习-打印杨辉三角形

    第1关:打印杨辉三角形 任务描述 本关任务:打印杨辉三角形. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程要求 根据提示,在右侧编辑器补充代码,实现用户 ...

  6. swust oj 996 打印杨辉三角形

    题目描述 杨辉三角形具有如下特征: 1.每行数字左右对称,由1开始逐渐变大,然后变小,回到1. 2.第n行的数字个数为n个. 3.第n行数字和为2^(n-1). 4.每个数字等于上一行的左右两个数字之 ...

  7. 打印杨辉三角的java代码,打印打印杨辉三角形怎么编程?

    打印打印杨辉三角形怎么编程? 打印杨辉三角形(要求打印10行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 - 各位大虾能 ...

  8. 【Python】格式化打印杨辉三角形

    使用python格式化打印杨辉三角形 一.题目 杨辉三角形,也称帕斯卡三角,其定义为:顶端是 1,视为(row0).第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和 (不在 ...

  9. C语言打印杨辉三角形

    C语言打印杨辉三角形 方法一 杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一. 先定义一个二维数组:a[N][N],略大于要打印的行数.再令两 ...

最新文章

  1. java邮件接收代码,JavaMail入门第四篇 接收邮件(示例代码)
  2. CentOS 7 yum 安装 MySQL5.7
  3. java并发处理时mvel表达式处理慢,一文说清!
  4. Nginx负载均衡配置实例详解(转)
  5. ESP32-S3芯片与ESP32及ESP32-S2比较好在哪里呢?官方到目前还没有任何信息发布,我们先来猜看都会有哪些性能的提升
  6. python中最难的是什么_Python 最难的问题你猜是什么?
  7. Kafka Streams 剖析
  8. 霍夫曼编码 c语言程序,哈夫曼编码编码解码C语言程序.doc
  9. Spring MVC拦截器配置以及统一登陆校验实现
  10. VLD(Visual LeakDetector)内存泄露库的使用
  11. 点餐小程序开发(软件源码)
  12. IT牛人进阶的必经之路
  13. linux 硬盘报错日志,Linux内核I/O系统报错日志与硬盘故障对应关系
  14. 解析中小学生的 AI 思维学习模型
  15. dede tag标签作用
  16. Java的8大基本数据类型
  17. [极品收藏]较全的FLASH素材大聚会
  18. MySQL数据库性能优化由浅入深(表设计、慢查询、SQL索引优化、Explain分析、Show Profile分析、配置优化)
  19. DevStore一键锁屏源码学习
  20. mybatis plus代码生成器时java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

热门文章

  1. 王国两位君主 多功能修改器V1.0.0 / Kingdom tow Crowns Trainer(千月修改器)
  2. 手把手教你学51单片机-点亮你的LED
  3. QPainter 保存自绘制为图片
  4. 1455: 数列有序
  5. 网易云易盾CTO朱浩齐:我们是如何用AI赋能内容安全?
  6. IDEA创建maven项目没有src/main/java目录问题
  7. ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number
  8. 由乌龟画一个正方形所想到的
  9. Vue学习之前端路由
  10. 过节了,你还在996嘛~