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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM