杨辉三角形(二维坐标基础题)——Java-二维数组版本

简介: 杨辉三角形(二维坐标基础题)——Java-二维数组版本

二维坐标基础题——杨辉三角形


 

       二维坐标题目可以说是蓝桥杯的重中之重题目了,我们在力扣上这类题目我们可以搜索到上前道,并且如果有兴趣筛选一下蓝桥杯历届的题目,利用二维数组解题的占比那是大到一个不可想象的地步,这种题其实最好的解决方案就是:【纸笔绘图】,通过绘图我们可以在其中找寻到一定的规律,再根据规律总结公式进行操作;如果真没办法总结公式就算是暴力处理我们也能有一条出路,起码拿到20%~40%的分没问题,有的时候测试数据量不是很大,甚至能达到80%的地步,由此可见,二维坐标题目的重要性了。

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

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

以上的输出过程我们总结一下:杨辉三角的两个腰边的数都是1,从第3行起,除第一个数和最后一个数外,其它位置的数都是上顶上两个数之和。

官网的杨辉三角说法:

杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623——1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。

我们看到从上向下的变量n顺序是以自然数的方式进行递增的,那么,我们根据这个顺序就能使用编程的方法输出出来。

杨辉三角Java二维数组编码

仅仅输出数字规律:

其实核心就是if判断语句,有两个逻辑:

逻辑1:如果i与j相等或上i==0||j==0,这种情况的输出值是1,我们直接赋值即可。

逻辑2:arr[i][j]的值等于数据上一层的的左侧-1数据加上正对着的上一层数据,

也就是【arr[i-1][j-1]+arr[i-1][j]】。

我们将这两个数据组合输出即可,这是咱们第一个数组坐标操作的题目。

package com.item.action;
public class Demo1 {
  public static void main(String[] args) {
    int n = 5;
    int[][] arr = new int[n][n];
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (i == j || i == 0 || j == 0) {
          arr[i][j]=1;
        }else {
          arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
        }
      }
    }
    for (int i = 0; i < n; i++) {
      for (int j = 0; j <= i; j++) {
        System.out.print(arr[i][j]+" ");
      }
      System.out.println();
    }
  }
}

我们来简单的打个补丁。

package com.item.action;
public class Demo1 {
  public static void main(String[] args) {
    int n = 5;
    int[][] arr = new int[n][n];
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (i == j || i == 0 || j == 0) {
          arr[i][j]=1;
        }else {
          arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
        }
      }
    }
    for (int i = 0; i < n; i++) {
      for (int k = n-1; k > i; k--) {
        System.out.print(" ");
      }
      for (int j = 0; j <= i; j++) {
        System.out.print(arr[i][j]+" ");
      }
      System.out.println();
    }
  }
}

相关文章
|
4月前
|
安全 架构师 Java
Java LTS版本进化秀:从8到21的欢乐升级之旅
困惑于Java版本选择?轻松幽默地穿越Java LTS版本时光隧道,掌握从Java 8到21的关键特性。通过一家初创公司的系统升级故事,直观了解每个版本如何解决代码冗余、性能瓶颈等开发痛点,助你在技术选型中做出明智决策。
299 7
|
11月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
567 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
6月前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
314 1
|
5月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1174 0
|
8月前
|
JavaScript Java 关系型数据库
家政系统源码,java版本
这是一款基于SpringBoot后端框架、MySQL数据库及Uniapp移动端开发的家政预约上门服务系统。
264 6
家政系统源码,java版本
|
存储 Java
【编程基础知识】 分析学生成绩:用Java二维数组存储与输出
本文介绍如何使用Java二维数组存储和处理多个学生的各科成绩,包括成绩的输入、存储及格式化输出,适合初学者实践Java基础知识。
325 1
|
Java 中间件 测试技术
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
513 15
|
缓存 Java Maven
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
730 2
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
|
Java Linux Windows
如何查看已安装的 Java 版本
要查看已安装的 Java 版本,打开命令提示符或终端,输入 `java -version`,回车后即可显示当前系统中 Java 的版本信息。
4770 1