python实现杨辉三角的几种方法代码实例


Posted in Python onMarch 02, 2021

python实现杨辉三角的几种方法代码实例

方法一:迭代

def triangle_1(x):
 """
 :param x: 需要生成的杨辉三角行数
 :return:
 """
 triangle = [[1], [1, 1]] # 初始化杨辉三角
 n = 3 # 从第三行开始计数,逐行添加
 while n <= x:
  for i in range(0, n-1):
   if i == 0:
    # 添加初始列表[1,1],杨辉三角每行的首位和末位必为1
    triangle.append([1, 1])
   else:
    # 逐位计算,并插入初始列表中
    triangle[n-1].insert(i, triangle[n - 2][i] + triangle[n - 2][i - 1])
  n += 1
 return triangle
x = 11
triangle = triangle_1(x)
 
# 遍历结果,逐行打印
for i in range(x):
 print(' '.join(str(triangle[i])).center(100)) # 转为str,居中显示

python实现杨辉三角的几种方法代码实例

方法二:生成器

def triangle_2(n):
 """
 :param n: 需要生成的杨辉三角行数
 :return: 
 """
 triangle = [1] # 初始化杨辉三角
 for i in range(n):
  yield triangle
  triangle.append(0) # 在最后一位加个0,用于计算下一行
  triangle = [triangle[i] + triangle[i - 1] for i in range(len(triangle))]
# 从生成器取值
for i in triangle_5(10):
 print(''.join(str(i)).center(100)) # 格式化输出

python实现杨辉三角的几种方法代码实例

方法三:递归

杨辉三角特性:

【1,1】=【0,1】+【1,0】

【1,2,1】=【0,1,1】+【1,1,0】

【1,3,3,1】=【0,1,2,1】+【1,2,1,0】

【1,4,6,4,1】=【0,1,3,3,1】+【1,3,3,1,0】

第n行等于第n-1行分别首尾补0,然后按位相加

def triangle_4(n):
 """
 :param n:需要生成的杨辉三角行数
 :return:
 """
 triangle = [1] # 初始化杨辉三角
 if n == 0:
  return triangle
 return [x+y for x, y in zip([0] + triangle_4(n - 1), triangle_4(n - 1) + [0])]
for i in range(10):
 print(''.join(str(triangle_4(i))).center(100))

 python实现杨辉三角的几种方法代码实例

到此这篇关于python实现杨辉三角的几种方法代码实例的文章就介绍到这了,更多相关python实现杨辉三角内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中sleep函数用法实例分析
Apr 29 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
python实现图像识别功能
Jan 29 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
python执行精确的小数计算方法
Jan 21 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
python如何获取apk的packagename和activity
Jan 10 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
python实现数字炸弹游戏
Jul 17 Python
Python+Appium新手教程
Apr 17 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 Python
python爬虫破解字体加密案例详解
Mar 02 #Python
python包的导入方式总结
Mar 02 #Python
numpy实现RNN原理实现
Mar 02 #Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 #Python
python Protobuf定义消息类型知识点讲解
Mar 02 #Python
Django项目在pycharm新建的步骤方法
Mar 02 #Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 #Python
You might like
Terran热键控制
2020/03/14 星际争霸
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
就业推荐自我鉴定
2013/10/06 职场文书
自我评价范文分享
2014/01/04 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
植树节口号
2014/06/21 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
公积金接收函格式
2015/01/30 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
详解Java实践之适配器模式
2021/06/18 Java/Android
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS