蓝桥杯杨辉三角形python
时间: 2023-09-24 21:14:18 浏览: 56
下面是一个Python程序来生成杨辉三角形:
```
n = int(input("请输入行数:"))
# 初始化杨辉三角
tri = [[1] * (i + 1) for i in range(n)]
# 计算杨辉三角
for i in range(2, n):
for j in range(1, i):
tri[i][j] = tri[i-1][j-1] + tri[i-1][j]
# 输出杨辉三角
for i in range(n):
for j in range(i+1):
print(tri[i][j], end=" ")
print()
```
这个程序首先读取用户输入的行数,然后使用一个二维列表来存储杨辉三角。在计算杨辉三角时,程序使用一个循环来遍历每一行和每一列,并使用公式 $C_{i,j} = C_{i-1,j-1} + C_{i-1,j}$ 来计算每个元素的值。最后,程序循环输出杨辉三角的每一行。
相关问题
杨辉三角形蓝桥杯Python
以下是使用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)
阅读全文