我正在为家庭作业编写代码,它需要输出pascal三角形的值,但不能输出三角形。例如我输入
pascalLine(2)
输出:
[1,2,1]
和for:
pascalLine(4)
输出:
[1,4,6,4,1]
我目前有这段代码,我相信它远未完成,因为它会输出一个三角形。
def pascalLine(n):
for rownum in range (n):
newValue=1
PrintingList = list()
for iteration in range (rownum):
newValue = newValue * ( rownum-iteration ) * 1 / ( iteration + 1 )
PrintingList.append(int(newValue))
print(PrintingList)
print()
答案 0 :(得分:2)
假设您计算行n
的原始代码是正确的,您可以摆脱外部循环:
def pascalLine(n):
newValue=1
row = [newValue]
for i in range (n):
newValue = (newValue * (n-i)) / ( i + 1 )
row.append(newValue)
print(row)
print()
答案 1 :(得分:2)
您可以使用这个简单的算法计算任意行,而无需计算整个三角形:
def pascal_row(n):
row = [1]
for col in range(1, n):
row.append(row[-1] * (n - col) / col)
return row