杨辉三角形蓝桥杯Python
时间: 2024-01-07 09:22:23 浏览: 61
以下是使用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代码示例:
```python
n = int(input("请输入杨辉三角形的行数:"))
# 初始化二维数组
a = [[0] * (n+2) for i in range(n+2)]
# 构造杨辉三角
for i in range(1, n+1):
for j in range(1, i+1):
if j == 1 or j == i:
a[i][j] = 1
else:
a[i][j] = a[i-1][j-1] + a[i-1][j]
# 输出杨辉三角
for i in range(1, n+1):
for j in range(1, i+1):
print(a[i][j], end=" ")
print()
```
以上代码中,首先通过`input()`函数获取用户输入的杨辉三角形的行数`n`。然后初始化一个二维数组`a`,用于存储杨辉三角。接着,通过两层循环构造杨辉三角,并将每个数字存储到相应的位置上。最后,再通过两层循环输出杨辉三角即可。