杨辉三角形蓝桥杯Python
时间: 2024-01-07 14:22:23 浏览: 156
以下是使用Python打印杨辉三角形的代码示例:
```python
def print_pascal_triangle(n):
triangle = []
for i in range(n):
row = [1] * (i + 1)
if i > 1:
for j in range(1, i):
row[j] = triangle[i-1][j-1] + triangle[i-1][j]
triangle.append(row)
for row in triangle:
print(' '.join(map(str, row)))
# 示例输出杨辉三角形的前4行
print_pascal_triangle(4)
```
输出结果为:
```
1
1 1
1 2 1
1 3 3 1
```
相关问题
蓝桥杯Python组杨辉三角形
题目描述
杨辉三角形,是我国古代数学家杨辉在《详解九章算术》一书中所记载的。在这个三角形中,第一行只有一个数 1,以下每行的每个数,都是它左上方和右上方的两个数相加而成的。请输出第 n 行的数字。
输入格式:
输入只有一个正整数 n(1≤n≤30),表示要输出杨辉三角形的第 n 行。
输出格式:
输出一个列表,其中第 i 个元素表示第 n 行的第 i 个数的值。
样例输入:
4
样例输出:
[1, 3, 3, 1]
算法1
(暴力枚举) $O(n^2)$
直接根据杨辉三角的定义计算即可。
时间复杂度
暴力枚举,时间复杂度 $O(n^2)$。
Python 代码
n = int(input())
res = [1]
for i in range(1, n):
tmp = [1]
for j in range(1, i):
tmp.append(res[j-1] + res[j])
tmp.append(1)
res = tmp
print(res)
算法2
(线性递推) $O(n)$
根据杨辉三角的性质,第 n 行的第 i 个数可以表示为第 n - 1 行的第 i - 1 个数和第 i 个数的和,因此可以使用线性递推的方式计算。
时间复杂度
时间复杂度 $O(n)$。
Python 代码
n = int(input())
res = [1] * n
for i in range(1, n):
for j in range(i-1, 0, -1):
res[j] += res[j-1]
print(res)
蓝桥杯杨辉三角形python
下面是一个 Python 实现的杨辉三角形代码:
```
n = int(input("请输入行数:"))
res = []
for i in range(n):
row = []
for j in range(i+1):
if j == 0 or j == i:
row.append(1)
else:
row.append(res[i-1][j-1] + res[i-1][j])
res.append(row)
for i in res:
print(i)
```
解释一下代码:
首先,我们从用户那里获取需要打印的杨辉三角形的行数。
接下来,我们创建一个空列表 `res` 用来存储杨辉三角形的每一行。
然后,我们使用两个嵌套的循环来遍历每一行和每一列,根据杨辉三角形的规律计算每个位置上的数值。具体来说:
- 如果当前位置是当前行的第一个或最后一个,那么它的值为 1。
- 否则,它的值等于上一行的前一个和当前位置的和。
最后,我们将每一行添加到 `res` 列表中,并遍历列表打印出杨辉三角形。
注意,这里使用的是 Python 3.x 版本的 `input` 函数,如果你使用的是 Python 2.x 版本,需要将其替换为 `raw_input` 函数。
阅读全文