-6

你好,我坚持这个练习。我正在做帕斯卡三角形,但似乎做得不够好,所以我大学的检查程序会接受它。我必须使用def pascals_triangle(n)where n=8。我可以让它工作,但问题在于输出 - 我得到数组......就像这样:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]

定义还说,每一行都应该写在矩阵 P[64]的行中,并且应该将空白位置设置为 0。我必须使用 for 循环,并且一行的打印命令应该如下所示:

print "%d %d %d %d %d %d %d %d" % (P[0],P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8])

有任何想法吗?

4

1 回答 1

0

你在看这样的东西:

def pascal_iteration(n):
    rows = list()
    lr = None
    for i in range(n+1):
        try:
            lr = [1] + [lr[i] + lr[i+1] for i in range(len(lr) - 1)] + [1]
        except Exception:
            lr = [1]
        rows.append(' '.join(str(v) for v in lr))
    return rows

rows = pascal_iteration(8)
l = len(rows[-1])
print '\n'.join(v.center(l) for v in rows)

输出:

          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
于 2012-11-05T00:30:35.717 回答