博客
关于我
java 蓝桥杯 算法基础 杨辉三角形
阅读量:390 次
发布时间:2019-03-05

本文共 1325 字,大约阅读时间需要 4 分钟。

杨辉三角形,又称Pascal三角形,是一个著名的数学结构。其第i+1行的元素是通过组合数计算得出的。每一行的第一个和最后一个元素都是1,而中间的元素则由上一行的两个相邻元素之和决定。

杨辉三角形的生成规则非常简单明确:

  • 每行的第一个和最后一个元素都是1。
  • 中间的每个元素等于其上方左边和右边的元素之和。
  • 以下是生成杨辉三角形的具体步骤:

  • 初始化二维数组:首先,我们需要一个二维数组来存储杨辉三角形的各行元素。假设我们要生成n行,那么数组的大小为n x n。

  • 填充数组

    • 对于每一行i来说,只有第一个和最后一个元素是1。
    • 对于中间的每个元素j(1<=j<=i-1),计算arr[i][j] = arr[i-1][j] + arr[i-1][j-1]。
  • 输出结果:逐行输出数组中的元素,每行元素之间用空格分隔,且每行结束后换行。

  • 让我们用代码实现这个过程:

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        int[][] arr = new int[n][n];                // 初始化杨辉三角形        for (int i = 0; i < n; i++) {            for (int j = 0; j <= i; j++) {                if (j == 0 || j == i) {                    arr[i][j] = 1;                } else {                    arr[i][j] = arr[i-1][j] + arr[i-1][j-1];                }            }        }                // 输出结果        for (int i = 0; i < n; i++) {            for (int j = 0; j <= i; j++) {                System.out.print(arr[i][j] + " ");            }            System.out.println();        }    }}

    代码解释

    • 输入读取:使用Scanner读取输入的n值。
    • 数组初始化:创建一个大小为n x n的二维数组arr
    • 数组填充
      • 外层循环遍历每一行i。
      • 内层循环遍历每一列j。
      • 如果j是0或者i,则设置arr[i][j]为1。
      • 否则,根据杨辉三角形的递推公式计算arr[i][j]的值。
    • 输出结果:逐行打印每一行的元素,确保每行元素之间用空格分隔,并且每行结束后换行。

    通过以上代码,可以轻松生成杨辉三角形的前n行。运行程序时,输入一个整数n,程序会输出杨辉三角形的前n行。

    转载地址:http://degwz.baihongyu.com/

    你可能感兴趣的文章
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>
    mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
    查看>>
    mysql 死锁(先delete 后insert)日志分析
    查看>>
    MySQL 死锁了,怎么办?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 添加列,修改列,删除列
    查看>>
    mysql 添加索引
    查看>>
    MySQL 添加索引,删除索引及其用法
    查看>>
    mysql 状态检查,备份,修复
    查看>>
    MySQL 用 limit 为什么会影响性能?
    查看>>
    MySQL 用 limit 为什么会影响性能?有什么优化方案?
    查看>>
    MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
    查看>>
    mysql 用户管理和权限设置
    查看>>
    MySQL 的 varchar 水真的太深了!
    查看>>
    mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
    查看>>
    MySQL 的instr函数
    查看>>
    MySQL 的mysql_secure_installation安全脚本执行过程介绍
    查看>>
    MySQL 的Rename Table语句
    查看>>
    MySQL 的全局锁、表锁和行锁
    查看>>