本文已参与「新人创作礼」活动,一起开启掘金创作之路。
在每行的末尾加0,等于两头加0.
def f_yang(n):
yang = [1]
for i in range(n-1):
yang.append(0)
yang = [yang[j-1] + yang[j] for j in range(len(yang))]
print(yang)
上面这个是马哥教育许伟老师的思路。 下面是我自己的思路,利用列表解构和递归的思想来实现,也是最直观的,代码可能多一点,感觉还有优化的地方,以后再说。先怎么直接怎么来。
def yang(n):
if n == 1:
new_list = [1]
old_list = [1]
for i in range(1, n):
new_list = []
for j in range(len(old_list)-1):
new_list.append(old_list[j]+old_list[j+1])
new_list = [1, *new_list, 1]
old_list = new_list
print(new_list)
下面优化来了
def triangle(n):
old_line = [1]
print(old_line)
for i in range(1, n):
new_line = []
for j in range(len(old_line)-1):
new_line.append(old_line[j] + old_line[j+1])
new_line = [1, *new_line, 1]
old_line = new_line
print(old_line)