2016-04-18 13 views
0

私はパスカルを三角形にしようとしていますが、私はすべて1の三角形を得ています。私が間違ってやっていることを誰かに見せてもらえますか?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))) 
+0

私はあなたが 'パスカル(行を返す意味だと思います - 1、列-1)+パスカル(行-1、列) 'となる。 – BrenBarn

答えて

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 
関連する問題