Pulse 0 Denunciar post Postado Junho 10, 2015 Os números de Catalan são definidos pela seguinte recursão: 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
_Isis_ 202 Denunciar post Postado Junho 11, 2015 A definição do exercício está errada.O correto é C0 = 1Cn+1 = 2 * (2n+1) * Cn/(n+2)http://mathworld.wolfram.com/CatalanNumber.html(Item 22) Compartilhar este post Link para o post Compartilhar em outros sites