python杨辉三角居中_利用python打印杨辉三角

article/2025/8/27 22:20:44

用python打印杨辉三角

介绍

杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和。

正好在python中,也就是生成一个列表,该列表中的元素,都是之前列表的同样位置的元素和前一个元素的和。在这里,我想到的方法是通过迭代来进行计算,因为每一个数列的生成,都是需要前一个数列作为基础。

实现方式

首先,需要实现第N个杨辉三角的列表生成,通过分析整个杨辉三角,除了第一个和第二个数列意外,其他的都是可以通过迭代的方式进行生成的。具体的函数如下:

def Traingle(x):

'''定义杨辉三角的函数,即下一行的第N个元素,是本行的第N个元素和第N-2个元素的和,最后返回一个列表'''

x = int(x)

Traingle_list = []

if x == 1:

Traingle_list = [1]

elif x == 2:

Traingle_list = [1,1]

else:

Traingle_list_temp = Traingle(x-1)#获取上一行三角列表

Traingle_list = [1,1]

temp = 1

while temp <= x-2:

Traingle_list.insert(temp,Traingle_list_temp[temp]+Traingle_list_temp[temp-1])

temp += 1

return Traingle_list

在上面的函数中,1和2比较好理解,因为比较简单,从第3个开始,都是要先获取前一个数列,然后利用循环的方式,在对应的位置上,进行插入,插入的元素,即为前一个数列中,同样位置和之前一个元素的和。同时需要注意的是,由于列表索引和初始列表的原因,第一个元素和最后一个元素是不用插入的,所以最后一个元素是x-1,最多插入到x-2的位置。

返回的结果是一个列表,可以直接进行调用打印。

为了是杨辉三角看上去比较有规律,在打印的时候需要做一下处理,比如居中显示。我能想到的办法是利用字符串的居中显示,先将列表转化成为字符串,然后对整个字符串进行居中显示。

在处理数据的过程中,由于数字越加越大,所以每个元素的长度也不一样,居中显示如果固定死了,对于后面的列表,就显得不好看。所以在处理的过程中,默认先取出最大的列表中的最大元素,然后计算该元素的长度,所有列表中的每一个元素,都按照该元素的长度进行居中补齐,这样就保证了所有列表的所有元素,长度都是固定相同的,看上去就能好看一些。

另外,由于整个列表的长度,由列表转化成为的字符串来限定的,字符串,由元素和空格组成,元素是固定长度的,空格是固定个数的,有N个元素,就有N-1个空格。所以定义一个打印的函数,对杨辉三角的输出进行打印,具体如下:

def PrintTringle(x):

'''

打印杨辉三角,其中利用到的是字符串居中显示,周围填充空格,但是由于不确定得到的结果的长度,所以需要得到整个列表中最大的那个元素,然后计算该元素的长度,利用该长度,为每一个杨辉三角的值进行填充剧中。

:param x:

:return:

'''

n = 1

x = int(x)

# 获取最大的元素,判断列表最大的元素的长度

if x % 2 == 0:

max_item = Traingle(x)[int(x/2)]

else:

max_item = Traingle(x)[int((x+1)/2)]

max_length = len(str(max_item))

while n <= x :

list = Traingle(n)

string = ''

tem = 0

# 对每一列杨辉三角进行处理,转化成为字符串,拼接

while tem < len(list):

if tem == 0:

string = str(list[tem]).center(max_length)

else:

string = string + ' ' + str(list[tem]).center(max_length)

tem += 1

# 打印处理,每一列的元素有N个,空格用N+1

print(string.center((max_length+1)*x-1))

n += 1

在调用该函数的时候,只需要输入一个参数,正整数,就可以打印出整个杨辉三角到一定长度的完整序列,并且逻辑展示排列。比如打印20个。

PrintTringle(20)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 252 210 120 45 10 1

1 11 55 165 330 462 462 330 165 55 11 1

1 12 66 220 495 792 924 792 495 220 66 12 1

1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1

1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1

1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1

1 16 120 560 1820 4368 8008 11440 12870 11440 8008 4368 1820 560 120 16 1

1 17 136 680 2380 6188 12376 19448 24310 24310 19448 12376 6188 2380 680 136 17 1

1 18 153 816 3060 8568 18564 31824 43758 48620 43758 31824 18564 8568 3060 816 153 18 1

1 19 171 969 3876 11628 27132 50388 75582 92378 92378 75582 50388 27132 11628 3876 969 171 19 1

以上显示,受页面排版的影响,显示不全,其实在终端中是可以正常显示的。

1215259-20190623203720144-1904033747.png


http://chatgpt.dhexx.cn/article/afk66ME4.shtml

相关文章

杨辉三角形(Python)

杨辉三角形的规则就是每行的第一个数字和最后一个数字为1之外&#xff0c;其余每个数字等于上一行对应两个数字的和。 1、使用二维数组实现 def triangle(row):result []for i in range(row):if i 0: # 第一行result.append([1])elif i 1: # 第二行result.append([1,1])e…

杨辉三角Python解法

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 例&#xff1a; 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 解析&#xff1a; 大于等于2行以后&#x…

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

想了解python实现杨辉三角的几种方法代码实例的相关内容吗&#xff0c;看&#xff0c;月亮在跳舞在本文为您仔细讲解python实现杨辉三角的相关知识和一些Code实例&#xff0c;欢迎阅读和指正&#xff0c;我们先划重点&#xff1a;python实现杨辉三角,python杨辉三角实现方法&am…

【完美解析】蓝桥杯 省赛 杨辉三角形 python组 找规律+二分查找+组合数

题目 看到最后如果还不懂你来打我~ 分析 我们看到杨辉三角形很容易想到一个数的值等于它肩膀两个数的和。为此&#xff0c;可以不断通过前一行的数求出后一行的数&#xff0c;重复上面操作&#xff0c;直到找到目标为止。但是看了用例规模后发现其涉及到十的九次方&#xff0…

【基础】杨辉三角python题解

题目 1231: 杨辉三角 时间限制: 1Sec 内存限制: 128MB 提交: 2261 解决: 750 题目描述 还记得中学时候学过的杨辉三角吗&#xff1f;具体的定义这里不再描述&#xff0c;你可以参考以下的图形&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 输入 输入数据包含多个…

杨辉三角形 python

class CircleQueue(object):def __init__(self,max50):# 队列最大容量self.max max# 存储队列元素的数组self.data [None for i in range(self.max)]# 队首指针self.front 0# 队尾指针self.rear 0def empty(self)::Desc判队空:return:如果队为空&#xff0c;返回True如果队…

蓝桥杯 省赛 杨辉三角形 python组(转)

# 求组合数 def C(a, b): # a为上限&#xff0c; b为下限res 1for i in range(a):res * b / a# 当结果大于目标值时无需继续运算&#xff0c;提高效率if res > target:return resb - 1a - 1return res# 二分查找目标元素 def search(k):# 起始下限&#xff0c;也就是对称轴…

蓝桥杯真题 杨辉三角形 python

专栏《蓝桥杯题目》 目录 【问题描述】 【输入格式】 【输出格式】 【样例输入】 【样例输出】 【评测用例规模与约定】 省流版本&#xff1a; 题目解析&#xff1a; 综上所述&#xff0c;写成代码如下所示&#xff1a; 【问题描述】 下面的图形是著名的杨辉三角形&#xff1a…

杨辉三角(Python)

杨辉三角性质: 每行首位数字都是1每行中间的各项数字都是它肩上两个数字的和第n行的数字有n个第n行的项数总比第n-1行多一个 解题思路: input来读取用户输入的行数。创建两个列表list1和list2,list1用于存放最后的结果(结果是二维列表),list2用于存放每一行的数字。根据性质输…

杨辉三角 Python(简单易懂)

杨辉三角&#xff08;最简单易懂&#xff09; 题目 编写两个函数&#xff0c;一个函数接收一个整数num为参数&#xff0c;生成杨辉三角形前num行数据&#xff0c;另一个函数接收生成的杨辉三角形并按以下形式输出&#xff0c;如图所示。 在图中&#xff0c;列出了杨辉三角形的…

MQ3

编者按】关于MQ&#xff0c;我以前只是有个大概概念。譬如之前&#xff0c;就是根据前端送过来的消息&#xff0c;format成后端所需要的消息格式&#xff0c;并将format后的消息放入一个Queue文件中&#xff0c;如果消息发送成功&#xff08;收到该request成功或者失败的respon…

MQ详解及四大MQ比较

一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0c;如老牌的ActiveMQ、RabbitMQ&a…

1.MQ介绍

什么是MQ mq&#xff08;message queue&#xff09;&#xff1a;面向消息的中间件&#xff08;message-oriented middleware&#xff09;是指利用高效可靠的消息传递机制与平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队…

RabbitMQ管理平台与主流MQ框架

目录 1. 什么是MQ 2. 应用场景 3. 主流MQ框架 4. Docker安装部署RabbitMQ 参数说明&#xff1a; 5. RabbitMQ管理平台 6. MQ的核心概念 7. springboot整合rabbitmq 7.1.安装好rabbitmq&#xff0c;登陆RabbitMQ管理平台&#xff0c;新增管理用户并设置权限 7.2.pom.xml添…

MQ高级(四)MQ集群

一、集群分类 RabbitMQ的是基于Erlang语言编写&#xff0c;而Erlang又是一个面向并发的语言&#xff0c;天然支持集群模式。 RabbitMQ的集群有两种模式&#xff1a; &#xff08;1&#xff09;普通集群&#xff1a;是一种分布式集群&#xff0c;将队列分散到集群的各个节点&…

MQ-2烟雾传感器解析

一、工作原理 可用于家庭和工厂的气体泄漏监测装置&#xff0c;适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此&#xff0c;MQ-2可以准确来说是一个多种气体探测器。MQ-2的探测范围极其的广泛。它的优点&#xff1a;灵敏度高、响应快、稳定性好、寿命长、驱动电路简…

MQ2

死信队列 什么是死信队列 一般来说&#xff0c;producer将消息投递到queue中&#xff0c;consumer从queue取出消息进行消费&#xff0c;但某些时候由于特定的原因导致queue中的某些消息无法被消费&#xff0c;这样的消息如果没有后续的处理&#xff0c;就变成了死信(Dead Lett…

MQ-2学习笔记

1.工作原理 MQ-2型烟雾传感器属于二氧化锡半导体气敏材料&#xff0c;属于表面离子式N型半导体。处于200~300摄氏度时&#xff0c;二氧化锡吸附空气中的氧&#xff0c;形成氧的负离子吸附&#xff0c;使半导体中的电子密度减少&#xff0c;从而使其电阻值增加。当与烟雾接触时…

01、RabbitMQ入门

目录 1.、什么是MQ 2、应用场景 3、主流MQ框架 4、Docker安装部署RabbitMQ 5、RabbitMQ管理平台 6、MQ的核心概念 单一生产者和单一消费者 7、springboot整合rabbitmq 执行测试方法testRabbitmq&#xff0c;控制台输出&#xff1a;receive msg : test rabbitmq messag…

MQ2烟雾传感器

1、MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时&#xff0c;传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器可用于家…