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网络编程学习笔记(一)
Jun 09 Python
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
python修改字典内key对应值的方法
Jul 11 Python
Python读取properties配置文件操作示例
Mar 29 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
Python实现的特征提取操作示例
Dec 03 Python
python 实现return返回多个值
Nov 19 Python
python:动态路由的Flask程序代码
Nov 22 Python
Python工程师必考的6个经典面试题
Jun 28 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
PHP7新特性简述
2017/06/11 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
python导入坐标点的具体操作
2019/05/10 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
物流专业大学应届生求职信
2013/11/03 职场文书
岗位职责范本
2013/11/23 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
三好学生个人总结
2015/02/15 职场文书
四大名著读书笔记
2015/06/25 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
javascript实现计算器功能详解流程
2021/11/01 Javascript
KVM基础命令详解
2022/04/30 Servers