这就是直接输出啊,print写在循环里面了啊
ls一开始存的是[1],然后在这个基础上不断迭代
本方法使用与接受序列中特定位置的成员,使用*进行不确定个数成员变量的接受。
每次拆分*控制的变量只允许出现一次。
例如:
mystr="nfklsdnfj0sd.....asdfl"
s1,*args,s2=mystr
此时s1,s2会分别接收n与l其余的将会让args进行接受。
杨辉三角是一种非常有趣的数学算法,可以用来计算二项式系数以及展示规律。在Python中应用杨辉三角可以通过编写函数来实现,以下是一个示例代码,你可以参考它逐步学习和掌握杨辉三角的算法和应用。
def generate_pascal_triangle(num_rows):
"""
生成杨辉三角,给定行数num_rows,返回一个二维列表,表示num_rows行的杨辉三角
"""
triangle = []
for i in range(num_rows):
row = [1] * (i + 1) # 该行的第一个数和最后一个数均为1,其他数为上一个列表相邻两数之和
for j in range(1, i):
row[j] = triangle[i-1][j-1] + triangle[i-1][j]
triangle.append(row)
return triangle
# 输出杨辉三角
def print_pascal_triangle(num_rows):
"""
打印杨辉三角,给定行数num_rows,输出num_rows行的杨辉三角
"""
triangle = generate_pascal_triangle(num_rows)
for i in range(num_rows):
for j in range(i + 1):
print(triangle[i][j], end=' ') # 按行输出杨辉三角,并用空格隔开
print()
# 注意这里num_rows需要传入一个正整数
print_pascal_triangle(5)
运行以上代码,你可以得到如下结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
这里用到的算法核心是逐行计算杨辉三角,每个数都等于上一行相邻两个数之和,该算法的时间复杂度是$O(n^2)$。如果你需要了解更多关于杨辉三角的算法和应用,可以参考下面的代码库和文章。
参考资料: