当前位置: 首页 > news >正文

树结构与算法-杨辉三角形的两种实现

什么是杨辉三角形

本文旨在讨论普通杨辉三角形的两种实现方式:迭代法和递归法。我们不详细讲解杨辉三角形的数学问题,只研究其代码实现。
杨辉三角形大致如下图:
image-20240614163537346

杨辉三角形的规律

通过对杨辉三角形的图形分析,我们可以看到这几点

  1. 直角三角形 :每行内的数据和和行的个数相等,例如第1行 1列,第2行有2列,第3行有3列…。

  2. 第一列和斜边列值都为1: 列 = =0;结果为1,列==行, 结果1
    在这里插入图片描述
    在这里插入图片描述

  3. 其它每个元素的结果= 上一行的前一列数据 + 上一行的当前列数据,使用数组表示: a[row][col] = a[row-1][col-1] + a[row-1][col];

迭代实现

所谓迭代实现实际上是使用循环对变量中的数据进行迭代处理。此法我们需要使用数组记录每个杨辉三角形中的数据。安装以上规律组织代码:

int[][] a = new int[10][10]; //定义数组存储杨辉三角形数据for (int row = 0; row < a.length; row++) { //外循环表示三角形行for (int col = 0; col <= row; col++) {//内循环表示三角形列if (col == 0 || col == row) {//第一列或者三角形斜边值为1a[row][col] = 1;} else { //当前值为上一行的相邻两数和a[row][col] = a[row - 1][col - 1] + a[row - 1][col];}}
}
/***  打印杨辉三角形*/
for (int row = 0; row < a.length; row++) {for (int col = 0; col <= row; col++) {System.out.print(a[row][col] + "\t");}System.out.println();
}

递归实现

递归实现需要使用方法来构建递归模型。需要找出递归的终止条件和一般规律:
终止条件: col= =0 或者 col= =row 则结果为1
一般规律: f(row,col) = f(row-1, col-1) + f(row-1,col);

 public static int f(int row, int col){if(col==0|| row ==col) return 1;return f(row-1,col-1)+ f(row-1,col);}
http://www.lryc.cn/news/375423.html

相关文章:

  • 【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态
  • Python - 一个恶意脚本
  • SFNC —— 采集控制(四)
  • AUTOSAR学习
  • 区区微服务,何足挂齿?
  • 数据结构 ->反转链表
  • Unity基础(一)unity的下载与安装
  • TOP10!YashanDB斩获广东省优秀信创产品与解决方案双料荣誉
  • 基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
  • 有趣且重要的JS知识合集(22)树相关的算法
  • 使用 Let’s Encrypt 生成免费 SSL 证书
  • 【电脑小白】装机从认识电脑部件开始
  • ssldump一键分析网络流量(KALI工具系列二十二)
  • 使用seq2seq架构实现英译法
  • 攻防演练“轻装上阵” | 亚信安全信舱ForCloud 打造全栈防护新策略
  • 在Android Studio中将某个文件移出Git版本管理
  • Vue46-render函数
  • @RequestParam 和 @PathVariable @Param注解的区别和作用
  • 复习一下。
  • ripro主题如何使用memcached来加速
  • 《珊瑚岛》是一款什么类型的游戏 苹果电脑如何玩到《珊瑚岛》
  • Go - 3.库源码文件
  • FPGA的基础仿真项目--七段数码管设计显示学号
  • Jmeter接口请求之 :multipart/form-data 参数请求
  • Type-C诱骗芯片LDR6500
  • 统一异常处理
  • Nginx网络服务
  • ifconfig eth0 hw ether
  • 微信小程序录音机源代码
  • 基于c语言的简单的数据库