杨辉三角,python简洁代码实现。

在每行的末尾加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)

你可能感兴趣的:(python,python)