解答例_3_9

練習問題_3_9(パスカルの三角形)

これもいろいろな解答例があると思います。結果が合っていればOKです。

def pascals_triangle(n):
    """パスカルの三角形のlist作成
    
    引数 n: 自然数
    戻り値: n行目までのパスカルの三角形のlist
    """
    if isinstance(n, int) and (n >= 1):
        result = []
        
        for i in range(n):           
            if i == 0:
                ls = [1]
            else: # i != 0
                ls = [0] + ls + [0]
                lsn = []
                for j in range(1, len(ls)):
                    lsn.append(ls[j-1]+ls[j])                    
                ls = lsn
            result.append(ls)
        return result
    
    else: #引数nが自然数ではない
        print('引数には自然数を使用してください')
        return None

pascals_triangle(7)

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

タイトルとURLをコピーしました