1. 程式人生 > >Python實現楊輝三角,超詳細!

Python實現楊輝三角,超詳細!

巧妙實現楊輝三角程式碼

def triangles():
    N=[1]   #初始化為[1],楊輝三角的每一行為一個list
    while True:
        yield N  #yield 實現記錄功能,沒有下一個next將跳出迴圈,
        S=N[:]   #將list N賦給S,通過S計算每一行
        S.append(0) #將list新增0,作為最後一個元素,長度增加1
        N=[S[i-1]+S[i] for i in range(len(S))]  #通過S來計算得出N


n = 0
results = []
for t in
triangles(): print(t) results.append(t) n = n + 1 if n == 10: break if results == [ [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] ]: print('測試通過!') else: print('測試失敗!')

分析 

 N=[S[i-1]+S[i] for i in range(len(S))]
設上一個N為[1,1]
則S=[1,1,0]
通過式子可以得出
N=[1,2,1]