本帖最后由 jackz007 于 2022-11-14 22:50 编辑 tringle = []
for i in range(10):
tringle.append([])
for j in range(10):
tringle[i].append(0)
for i in range(10):
tringle[i][0] = 1
tringle[i][i] = 1
for i in range(2,10):
for j in range(1,10):
tringle[i][j] = tringle[i-1][j-1] + tringle[i-1][j]
for i in range(10): # 杨辉三角总共需要打印 10 行
print('\t' * ((10-i) // 2) , end='') # 这一行的意思是根据不同的行号打印对应数量的前导 '\t' 字符,以便打印内容能够形成三角形的形态
for j in range(i + 1) : # 按行打印元素,例如,第 1 行打印 1 个,第2行打印 2 个,. . . . . .第 10 行打印 10 个
if i % 2 == 1: # 如果行号是奇数
print(" ", end='\t') # 打印这些内容(为了行间错开)
print(tringle[i][j], end='') # 最后打印列表元素
print() # 打印完一行,输出一个换行符
这是我写的def yang(n):
r = [[1 for j in range(i + 1)] for i in range(n)]
for i in range(2 , n):
for j in range(1 , i):
r[i][j] = r[i - 1][j - 1] + r[i - 1][j]
return r
n = int(input('输入 n : ') . strip())
d = yang(n)
for i in range(n):
s = ' ' * (n - i - 1) * 2 + '%3d' % d[i][0]
for j in range(1 , i + 1):
s += ' %3d' % d[i][j]
print(s)
|