Java 实现杨辉三角形

这篇具有很好参考价值的文章主要介绍了Java 实现杨辉三角形。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、原理

杨辉三角形,也被称为帕斯卡三角形,是一种由数字构成的三角形,它的特点是每个数字都是它上方两个数字的和。这个三角形是以法国数学家布莱兹·帕斯卡和中国数学家杨辉命名的。

杨辉三角形的原理可以通过以下步骤来解释:

  1. 第一行只有一个数字 1。
  2. 第二行有两个数字 1。
  3. 从第三行开始,每一行的第一个数字和最后一个数字都是 1。中间的数字是上一行的相邻两个数字之和。例如,第三行的中间数字是上一行的第一个数字 1 和第二个数字 1 相加得到的,结果是 2。
  4. 每一行的数字个数比上一行多 1。

通过这样的规律,可以逐行构建杨辉三角形。每一行的数字可以用组合数来表示,例如第 n 行的第 k 个数字可以表示为 C(n-1, k-1),其中 n 表示行数,k 表示数字在该行的位置。

杨辉三角形在组合数学、概率论、代数等领域有广泛的应用,它的性质和规律被广泛研究和应用于解决各种数学问题。文章来源地址https://www.toymoban.com/news/detail-614017.html

二、代码实现

//n 是杨辉三角形的行数
public void yanghui(int n) {
    //创建列不固定的二维数组
    int[][] arr = new int[n][];
    for (int i = 0; i < n; i++) {
        //每一行的数字个数
        arr[i] = new int[i + 1];

        for (int j = 0; j < i + 1; j++) {
            //第一个和最后一个数字为 1
            //其他数字为上一行相邻的两个数字之和
            if (j == 0 || j == i) {
                arr[i][j] = 1;
            } else {
                arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
            }
        }
    }

    //打印杨辉三角形
    System.out.println("杨辉三角形前 " + n + " 行数据如下:");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i + 1; j++) {
            System.out.printf(arr[i][j] + "\t");
        }
        System.out.println();
    }
}
  • 时间复杂度:填充数组的循环需要执行n*(n+1)/2次,打印数组的循环需要执行n*(n+1)/2次。因此,总的时间复杂度为 O(n^2)
  • 空间复杂度:二维数组arr的空间复杂度为 O(n^2),用于存储杨辉三角形的数字。

三、运行结果

杨辉三角形前 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
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

到了这里,关于Java 实现杨辉三角形的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言每日一练——第105天:杨辉三角形

    🌟 前言 Wassup guys,我是Edison 😎 今天是C语言每日一练,第105天! Let’s get it! 杨辉三角形 解题之前,我们先来了解一下杨辉三角形到底是什么? 杨辉三角形,又称帕斯卡三角形、贾宪三角形、海亚姆三角形,它的排列形如三角形。   因为首现于南宋杨辉的《详解九章算法

    2024年01月25日
    浏览(34)
  • 蓝桥杯专题-试题版-【完美的代价】【芯片测试】【序列求和】【杨辉三角形】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(42)
  • 杨辉三角(Java)

     实现思路:我们可以先把杨辉三角想象成一个空的二维数组,然后再给它赋值输出即可。 关键在于如何赋值:仔细观察上图可以得出除了 每一行第一个数以及最后一个数(都是1) , 中间的数字规律就是: a[ i ][ j ] = a[ i - 1 ][ j - 1 ] + a[ i - 1 ][ j ] 实现代码: 相信大家更多的

    2024年02月08日
    浏览(38)
  • Java算法_ 杨辉三角(LeetCode_Hot100)

    题目描述:题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码

    2024年02月13日
    浏览(51)
  • java打印各种三角形~(**版)

    文章目录 1、正等腰三角形 2、倒等腰三角形 3、菱形 4、左下直角三角形 5、右下直角三角形 6、左上直角三角形 7、右上直角三角形 8、数字版三角形  

    2024年02月07日
    浏览(47)
  • Java用for循环打印三角形菱形

    目录   一、打印矩形  二、打印直角三角形 1.直角三角形  2.打印九九乘法表  三、打印等腰三角形  四、打印平行四边形  五、打印菱形  六、打印两个直角三角形 1.打印两个直角三角形  2.打印倒着的两个直角三角形 七、打印“蝴蝶”   一、打印矩形 运行结果:  二、

    2024年04月25日
    浏览(38)
  • 数字三角形+包子凑数(蓝桥杯JAVA解法)

    题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和(路径上的每一步只可沿左斜线向下或右斜线向下走)。 输入描述 输入的第一行包含一个整数 N (1≤N≤

    2024年02月01日
    浏览(40)
  • 郑州轻工业大学-程序设计技术(Java)-PTA实验1(7-5)-打印杨辉三角

    本段代码知识点在于对 for循环的应用 以及 二维数组的使用 ,同时将 if/else语句 嵌套在for循环中,并且在输出阶段对 格式 进行了规范,以下是详解: 1. for循环 在Java语言中,有三种循环语句,分别是for语句,while语句以及do-while语句,其中for语句的使用在代码编写的过程中最

    2024年04月08日
    浏览(48)
  • 力扣120. 三角形最小路径和(Java 动态规划)

    Problem: 120. 三角形最小路径和 Problem:64. 最小路径和 本题目可以看作是在上述题目的基础上改编而来,具体的思路: 1.记录一个int类型的大小的 n 乘 n n乘n n 乘 n 的数组(其中 n n n 为数组triangle的行数)用于记录 每一个当前阶段的最小路径和 2.大体上可以依据题意得出动态转移

    2024年01月22日
    浏览(43)
  • java中的线程不安全和实例解析,网络安全多态实现原理

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月27日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包