De Catalan getallen, genoemd naar de Belgische wiskundige Eugene Charles Catalan (1814-1894), worden gedefinieerd door \begin{eqnarray*} C_0&=&1\\ C_{n+1}&=&\frac{4n+2}{n+2}C_n \text{ voor } n\ge0 \end{eqnarray*} Schrijf een functie catalan(i) die via bovenstaande recursieve definitie het gehele getal $$C_i$$ berekent. Indien het argument negatief is, wordt de waarde -1 teruggegeven.

Tip: let op het gebruik van (onnauwkeurige) floating point bewerkingen en probeer deze te vermijden!

Argumenten

De index van het gevraagde Catalan getal.

Resultaat

Het bijhorende gehele Catalan getal.

Voorbeeld

 
catalan(0) = 1
catalan(5) = 42
catalan(25) = 4861946401452
catalan(-5) = -1