帕斯卡三角显示所有1s

时间:2016-04-18 01:23:39

标签: python pascals-triangle

我正在尝试制作帕斯卡三角形,但我得到的是所有1的三角形。有人能告诉我我做错了什么吗?

def pascals(row, column):
    if column == 0:
        return 1
    if row == 0:
        return 1
    if row < 0:
        return 0
    if column < 0:
        return 0
    if column > row:
        return 0
    if column == row:
        return 1
    else:
        return pascals(row - 1, column -1 + pascals(row - 1, column))

# generate the first 10 rows of Pascal's Triangle
for row in range(10):
  print('{: ^45}'.format(' '.join(str(pascals(row, col)) for col in range(row+1)))

1 个答案:

答案 0 :(得分:1)

应该是pascals(row - 1, column - 1) + pascals(row - 1, column)而不是pascals(row - 1, column - 1 + pascals(row - 1, column))

代码应为:

def pascals(row, column):
    if column == 0:
        return 1
    if row == 0:
        return 1
    if row < 0:
        return 0
    if column < 0:
        return 0
    if column > row:
        return 0
    if column == row:
        return 1
    else:
        return pascals(row - 1, column - 1) + pascals(row - 1, column) # Your brackets should be like this
# generate the first 10 rows of Pascal's Triangle
for row in range(10):
    print('{: ^45}'.format(' '.join(str(pascals(row, col)) for col in range(row+1)))) # you left out one bracket here

输出现在是:

                  1
                 1 1
                1 2 1
               1 3 3 1
              1 4 6 4 1
            1 5 10 10 5 1
          1 6 15 20 15 6 1
         1 7 21 35 35 21 7 1
       1 8 28 56 70 56 28 8 1
     1 9 36 84 126 126 84 36 9 1