杨辉三角
"""
打印杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
"""
def yhsj1(n):
"""递归(效率低不推荐)"""
listx = ['1']
listy = listx[:]
if n == 1:
return listx
if n == 2:
listy.append('1')
return listy
leny = len(yhsj1(n - 1))
for i in range(leny):
if i < leny - 1:
z = int(yhsj1(n - 1)[i]) + int(yhsj1(n - 1)[i + 1])
listy.append(str(z))
listy.append('1')
return listy
def yhsj2(n):
"""循环(推荐)"""
lists = []
for i in range(n):
lists += [1]
if i > 1:
lists_cp = lists[:]
for j in range(1,i):
lists[j] = lists_cp[j] + lists_cp[j-1]
for sj in lists:
print(sj, end = '\t')
print()
def main():
# 调用9次函数打印结果
for i in range(1, 10):
print('\t'.join(yhsj1(i)))
yhsj2(9)
if __name__ == '__main__':
main()