测开小练习:打印杨辉三角(自定义行数)

文摘   科技   2024-05-06 11:41   北京  
关注我们,一起学习+涨薪不掉队!

文 | 三毛和荷西

分享你的测试成长经历,吴老师免费送书 !

杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。

杨辉三角在编程实现中较为容易。最常见的算法便是用上一行递推计算;也有运用和组合的对应关系而使用阶乘计算的,然而后者速度较慢且阶乘容易溢出。


杨辉三角形

               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. 每一行的第一个和最后一个元素都是1
2. 每行元素个数与行数相同
3. 从第三行开始,除了首尾元素,每一行的第N个元素都是上一行的第N-1和第N个元素之和
# 1. 声明一个函数,构造三角形的行,接收上一行作为参数
# 2. 声明一个行值列表,初始化第一个元素为1
# 3. 基于坐标遍历从第二个元素到倒数第二个元素
# 4. 将上一行的当前坐标值与第一个坐标值之和赋值给当前行当前坐标,并添加到列表
# 5. 遍历结束后,在行最后添加一个1,并返回行值列表

 代码:

def create_line(l): # 生成杨辉三角的一行    L= [1]   for x in range(1, len(l)):       L.append(l[x] + l[x - 1])   L.append(1)   return L
# 基于某种规则将每一行的每个元素打印出来def print_line(L, W): # 打印 s= "" for x in L: s += str(x) + " " print(s.center(W))
while True: try: row = int(input("输入行数:")) if row <= 0: raise break except: print("输入错误,必须是不为0的正整数")
L = [1]
width = row * 4 # 设置打印宽度if row > 1: # 当输入的行大于1时,才需要循环构造每一行 for x in range(row): print_line(L, width) L = create_line(L)else: # 如果只有一行时,直接打印该行 print_line(L, width)


免费领取三节测试开发试听课
链接:https://pan.baidu.com/s/1nKqINq42KWm-hupBoebBWw
提取码:k5fv

无论上课或自学,

你首先需要准备:

每天 2 小时+的学习时间

每天坚持写代码的习惯!

有投入才有产出,

10k+的涨幅需要 1 年以上的努力!

祝你成功!


光荣之路出品

测试大佬和小白的故事

2020年度测试现状报告

自动化测试的目标

手把手教你pytest测试框架

测开必备-flask网站开发

IOS真机移动端App+H5混合自动化测试实战

产品测试规范

内推:字节跳动 | 测试开发

招聘QQ群:203715128

光荣之路
关注光荣之路软件技术培训账号,即时收取测试开发技术的免费公开课信息,各大公司测试及开发招聘信息、最新的技术咨询、线下测试技术分享沙龙信息
 最新文章