【每日一题】2021.10.22
编程(至少用2种方法)用以下列格式输出杨辉三角形,比如n=1~8输出 :
Y( 1) = [1]
Y( 2) = [1, 1]
Y( 3) = [1, 2, 1]
Y( 4) = [1, 3, 3, 1]
Y( 5) = [1, 4, 6, 4, 1]
Y( 6) = [1, 5, 10, 10, 5, 1]
Y( 7) = [1, 6, 15, 20, 15, 6, 1]
Y( 8) = [1, 7, 21, 35, 35, 21, 7, 1]
...... ......
编程语言:包括但不限于Python
# 杨辉三角
def yangHuiSanJiao(n):
# 打印第一行和第二行
if n>=1:
print(f'Y({1})=',end='')
print("[1]".center(50))
next_line = [1, 1]
if n>=2:
print(f'Y({2})=',end='')
second_line = '['+','.join([str(i) for i in next_line])+']'
print(second_line)
for j in range(2, n):
mid = []
for i in range(0, len(next_line) - 1):
mid.append(next_line[i] + next_line[i + 1])
next_line = [1] + mid + [1]
print(f'Y({j+1})=', end='')
fin ='['+ ','.join([str(i) for i in next_line])+']'
print(fin)
#
yangHuiSanJiao(5)
def next_line(lst):
newline = [1]
for x in range(len(lst) - 1):
newline.append(lst[x] + lst[x + 1])
newline.append(1)
return newline
# 定义二位数组,存放;如果为了节约空间,也可以不用放二维数组
def yanglst(n):
yanghui = []
L = [1]
for x in range(n):
yanghui.append(L)
L = next_line(L)
return yanghui
i=0
for I in yanglst(8):
i+=1
print(f"Y({i})=",I)