Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Catalan - recursividade

$
0
0

Os números de Catalan são definidos pela seguinte recursão:

oW8lRqt.png

Alguns números desta sequência são: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786... Faça uma função recursiva que receba um número N e retorne o N-ésimo número de Catalan.

#include <stdio.h>

float catalan(int);

int main ()
{
    int n=4;

    printf("%.2f", catalan(n));
}

float catalan(int n)
{
    if(n==0)
    {
        return 1;
    }
    else if(n>0)
    {
        return 2*((2*n) - 1)/(n+1)*catalan(n-1);
    }
}

Consegui fazer tudo corretamente, até fiz um teste de mesa com o meu algoritmo para verificar se estava realmente correto e deu tudo certo. Contudo, quando foi compilar deu erro, os números que estão sendo calculados estão errados. Ao informar o número 4, por exemplo, o resultado informado é 8, quando na verdade deveria ser 14.


Viewing all articles
Browse latest Browse all 14190