Consider the number triangle below, in which each number is equal to the number above plus the number to the left. If there is no number above, assume it's a `0`.

The triangle has `5` rows and the sum of the last row is `sum([1,4,9,14,14]) = 42`.

You will be given an integer `n` and your task will be to return the sum of the last row of a triangle of `n` rows. 

In the example above:
More examples in test cases. Good luck!

```if:javascript
### Note

This kata uses native arbitrary precision integer numbers ( `BigInt`, `1n` ).  
Unfortunately, the testing framework and even native `JSON` do not fully support them yet.  
`console.log(1n)` and `(1n).toString()` work and can be used for debugging.  

We apologise for the inconvenience.
```

Difficulty: introductory

Starter code:

def solve(n):
	

Solutions:
# https://oeis.org/A000108
from math import factorial as fac
def solve(n): return fac(2*n)//fac(n)//fac(n+1)

def binomial_coefficient (n, k):
    if not n >= k >= 0:
        return None
    lower_k = min(k, n-k)
    coeff = 1
    for i in range(lower_k):
        coeff *= n - i
        coeff //= i + 1
    return coeff
    
def catalan_number (n):
    return binomial_coefficient(2*n, n) // (n+1)

def solve (n):
    return catalan_number(n)

from math import factorial
def solve(n):
    return factorial(2*n)//(factorial(n)*factorial(n+1))

from decimal import Decimal

import numpy as np


def solve(n):
    a = np.ones(1, dtype=Decimal)
    for i in range(n):
        a = np.append(np.add.accumulate(a), [0])
    return a.sum()

from math import factorial

def binominal(n, k):
    if k < 0 or n < k:
        return None
    product = 1
    for i in range(k):
        product *= n-i
        product //= i+1
    return product

def catalan(n):
    return binominal(2*n, n) // (n+1)

def solve(n):
    return catalan(n)

def binomial (n, k):
    n, k = int(n), int(k)
    if not n >= k >= 0:
        return None
    k = min(k, n-k)
    product = 1
    for i in range(k): 
        product *= n - i
        product //= i + 1
    return product

def catalan (n):
    return binomial(2*n,n) // (n+1)

def solve (n):    
    return catalan(n)
    



from itertools import accumulate
def solve(n):
    a = [1]
    for _ in range(n):
        a = list(accumulate(a))
        a += a[-1:]
    return a[-1]

from functools import reduce
from operator import mul

def solve(n):
    return reduce(mul, range(n+2, 2*n+1)) // reduce(mul, range(1, n+1))

def solve(n):
    a=[1]
    for _ in range(n-1):
        b=[1]
        for x in a[1:]:
            b.append(x+b[-1])
        b.append(b[-1])
        a=b
    return sum(a)