""" todo 杨辉三角 又称帕斯卡三角形(Pascal('s Triangle),是一个在数学中非常著名的数列三角形 它由法国数学家布莱兹·帕斯卡发现,但实际上,这个三角形在中国宋代的数学家杨辉的著作中已经出现,因此在中国通常被称为杨辉三角 杨辉三角的每一行都由数字组成,排列成三角形状 三角形的最顶端是第0行,只有一个数字1 从第1行开始,每行的前一个和最后一个数字都是1,中间的数字是它正上方两个数字的和 """ # 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 #定义一个函数,接收一个参数n表示杨辉三角的行数 #构建一个具有n行的杨辉三角 def pascal_triangle(n): #初始化杨辉三角的第0行为[1],并将其存储在列表triangle中 triangle = [[1]] #使用循环从1到n-1,因为第0行已经初始化了 #使用for循环填充之后的n-1行 for i in range(1, n): #对于每一行创建一个新的列表row,用来存储当前行的值,i的值是当前行的索引 #row的第一个元素设置为1 row = [1] #使用另一个for循环,从1到i-1,不包括i,i是当前行的索引,因为i会与上一行的最后一个元素对应, #row中的每个元素是正上方两个数字的和,填充row中间的元素 for j in range(1, i): row.append(triangle[i-1][j-1] + triangle[i-1][j]) #最后一个元素也设置是1 row.append(1) #将row添加到triangle列表中 triangle.append(row) #返回构建好的杨辉三角列表 return triangle #用于格式化输出,接收一个triangle参数,杨辉三角列表 def print_triangle(triangle): #将列表类型转换为字符串 #计算最宽行的长度,用map函数将最后一行的元素转换为字符串再用join连接成一个长字符串, # 方便之后的打印能够居中对齐 width = len(" ".join(map(str, triangle[-1]))) #遍历triangle中的每一行,map函数将row中的每个元素转换为字符串,再用join连接, # 再用center方法将该长字符串居中,print打印出来 for row in triangle: print(" ".join(map(str, row)).center(width)) #调用 if __name__ == '__main__': n = input('请输入构建杨辉三角的行数:') print_triangle(pascal_triangle(int(n)))
04-30
162
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-05
2540
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-09
1万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-01
413
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-12
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交