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修改注册表终止360进程实例
Oct 13 Python
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
python实现按任意键继续执行程序
Dec 30 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
Jun 17 Python
python数值基础知识浅析
Nov 19 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
Python中的xlrd模块使用原理解析
May 21 Python
小结Python的反射机制
Sep 28 Python
python中二分查找法的实现方法
Dec 06 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php常用表单验证类用法实例
2015/06/18 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
详细介绍Python函数中的默认参数
2015/03/30 Python
Python import与from import使用及区别介绍
2018/09/06 Python
python绘制热力图heatmap
2020/03/23 Python
python3图片文件批量重命名处理
2019/10/31 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
面向对象编程OOP的优点
2013/01/22 面试题
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
欢度春节标语
2014/07/01 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
先进班集体事迹材料
2014/12/25 职场文书
滴水洞导游词
2015/02/10 职场文书
大四学生个人总结
2015/02/15 职场文书
Python3 类型标注支持操作
2021/06/02 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android