2012-11-05 244 views
-6

你好,我堅持這個練習。我正在做帕斯卡的三角形,但看起來不夠正確,所以檢查我大學的課程是否會接受它。 我必須使用def pascals_triangle(n),其中n=8。我可以得到的工作,但問題是在輸出 - 我得到陣列... 這樣的:Python - 帕斯卡三角形

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

而且定義說,各行應在矩陣P的行被寫入[64]而空的地方,應把爲0。我必須使用一行循環和打印命令應該是這樣的:

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]) 

任何想法?

+1

你能具體談談輸入'N'的意義和輸出的格式和哪些代碼有你試圖從數組中獲得輸出嗎? – Aprillion

回答

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 
+0

這看起來不錯,但它有點違反問題中的幾乎所有要求... – Aprillion

+0

我可以看到你目前的代碼嗎? – enginefree

+0

我還沒有答案,我問OP的輸出格式是什麼意思 - 但你的輸出甚至不像8x8矩陣空的地方設置爲0 – Aprillion