帕斯卡的三角形/线条

时间:2012-10-22 00:23:26

标签: python recursion

我正在为家庭作业编写代码,它需要输出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()

2 个答案:

答案 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