Python實現楊輝三角演演算法

2020-09-24 11:01:11

在Python中,楊輝三角總是拿出來當演演算法題考,那什麼是楊輝三角呢?檢視定義

先來觀察下面的楊輝三角圖例:

通過觀察會發現,楊輝三角的每行的第一個與最後一個數都是1,且從第3行開始非1數位是它左上方和右上方的數的和 !

那麼知道了規律就可以開始寫程式碼了

def triangles(row):    
    count = 0
    while count < row:
        arr = []
        for i in range(count+1):
            if i > 0 and i < count:
                arr.append(lastList[i-1] + lastList[i])
            else:
                arr.append(1)
        lastList = arr
        yield arr
        count += 1


for t in triangles(10):
    print(t)

上面程式碼寫完了,看著這麼多程式碼,那麼是不是可以把程式碼簡化一些呢?

然後就有了下面程式碼

def triangles(row):
    count = 0
    while count < row:
        arr = [arr[i-1] + arr[i] if i > 0 and i < count else 1 for i in range(count+1)]
        yield arr
        count += 1


for t in triangles(10):
    print(t)

這樣程式碼就簡潔很多了