Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pulse

Catalan - recursividade

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.