-1

我正在为作业编写代码,它需要输出帕斯卡三角形的值,而不是三角形的值。例如我输入

pascalLine(2)

它输出:

[1,2,1]

并为:

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()
4

2 回答 2

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()
于 2012-10-22T00:37:43.423 回答
2

您可以使用这个简单的算法来计算任意行,而不必计算整个三角形:

def pascal_row(n):
    row = [1]

    for col in range(1, n):
        row.append(row[-1] * (n - col) / col)

    return row
于 2012-10-22T00:45:49.240 回答