LoginSignup
2
1

More than 5 years have passed since last update.

pascal triangle

Posted at
def vs_pascal(p):
    max_len = len(l_to_str(p[-1]))
    for e in p:
        print(l_to_str(e).center(max_len))

def l_to_str(l, d="  "):
    return d.join(map(lambda x: str(int(x)), l))


def comb(n, r):
    if n == 0 or r == 0: return 1
    return comb(n, r - 1) * (n - r + 1) / r


def pascal(x):
    p = []
    for n in range(x + 1):
        t = []
        for r in range(n + 1):
            t.append(comb(n, r))
        p.append(t)
    return p

vs_pascal(pascal(15))

Output

                                       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
                 1  10  45  120  210  252  210  120  45  10  1
               1  11  55  165  330  462  462  330  165  55  11  1
            1  12  66  220  495  792  924  792  495  220  66  12  1
        1  13  78  286  715  1287  1716  1716  1287  715  286  78  13  1
    1  14  91  364  1001  2002  3003  3432  3003  2002  1001  364  91  14  1
1  15  105  455  1365  3003  5005  6435  6435  5005  3003  1365  455  105  15  1

ref:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1