SlideShare une entreprise Scribd logo
1  sur  12
MENU

 RECURSIÓN E
 ITERATIVIDAD


 NUMEROS DE
  CATALAN


 ALGORITMOS



 EJECUCIÓN DE
LOS ALGORITMOS


CONCLUSIONES Y
RECOMENDACION
     ES
La recursión o recursividad es un concepto
amplio, con muchas variantes. Aparece en
numerosas actividades de la vida diaria; por
ejemplo en una fotografía donde se observa otra
fotografía.

La recursión es un recurso muy poderoso que
permite expresar soluciones simples y naturales a
ciertos tipos de problemas. Es importante
considerar que no todos los problemas son
naturalmente recursivos.


Un objeto recursivo es aquel que aparece en la definición de sí mismo,
así como el que se llama a sí mismo.
Subprograma P
                                  Directa: el programa o subprograma se
     --------------------------       llama directamente a sí mismo.
     --------------------------
     --------------------------
     --------------------------
         Llamada a P
                                       Subprograma P                Subprograma Q
                                     --------------------------   --------------------------
                                     --------------------------   --------------------------
     Indirecta: el                   --------------------------   --------------------------
                                     --------------------------   --------------------------
 subprograma llama a                     Llamada a Q                  Llamada a P
 otro subprograma, y
    éste, en algún
   momento, llama
nuevamente a primero.



La iteración es la repetición de una secuencia de instrucciones o eventos
por un cierto numero de veces.
Estos números se utilizan en una gran variedad de problemas de
combinatoria. Tienen varias aplicaciones; por ejemplo, determinar el
numero de formas en que un polígono con n+2 lados se puede
descomponer en n triángulos.

En combinatoria los números de catalán forman una secuencia de
números naturales. Obtienen su nombre del matemático belga
Eugéne Charles Catalan

El enésimo numero de catalán se obtiene con la formula

                                   con n>=0

 La complejidad computacional de este problema es P ya que
 puede ser resuelto en un tiempo polinómico por una maquina
 Turing Determinista y que puede ser tratable.
El problema de distancia de Los numero s de catalán se
     puede realizar con recursión al igual que iterativamente.


1. Inicio
2. Asignar variables: a, c, n, b=1,fac,x=1,factorial=1.
3. Pedir el numero natural la cual será la posición del numero catalán.
4. Insertar el numero.
5. Asignarlo a la variable n.
6. La formula para sacar el numero de catalán es:
  Con esto separamos las operaciones en
a= 2n;    fac=n+1 y x.

7. Asignamos la primera operación a=2n y ponemos un for para sacar su
   factorial ya multiplicado:
a=2*n;
     for(c=1;c<=a;c++)
     b=c*b;              7.1El resultado de la operación pasa al for y el
                        resultado de la primera operación se va asignando
                         a la variable b, lo cual se va multiplicando esta
                          misma por todos los valores anteriores a n. El
                               resultado se asigna a la variable b.
8. Lo mismo pasa con la formula fac=n+1
Se hace con otro for :
fac=n+1;
        for(c=1;c<=fac;c++)
        x=c*x;

Repetir paso 7.1y el resultado se asigna a la variable x.

9. Con la tercera formula se hace lo mismo :
for(c=1;c<=n;c++)
factorial=c*factorial;
Entonces se realiza lo mismo que en el paso 7.1 pero solo se saca el
factorial de n,
el resultado se asigna a la variable factorial.

10. Ya que sacamos el resultado de las tres formulas las juntamos:
 catalan= b/(x*factorial)
11. Se despliega el resultado.
1. Inicio
2. Pedir el numero
3. Asignarlo a la variable n.
4. Mandar a llamar a la función numeroscatalan.
5. Preguntar si el numero es igual a cero:
Si es verdad numeroscatalan=1(estado basico)
Si es Falso
numeroscatalan=(2*((2*n)-1))/(n+1)*numeroscatalan(n-1).
5. Imprimir numeroscatalan.
6.Fín



               Asintóticamente los números de catalán crecen:
#include<stdio.h>
#include<conio.h>

main()
{
     int catalan,a,c,n,b=1,fac,x=1,factorial=1;
     printf("ttttNUMEROS DE CATALANn");
     printf(“Numero:");
     scanf("%d",&n);
     a=2*n;
     for(c=1;c<=a;c++)
     {
                  b=c*b;
                  }
fac=n+1;
        for(c=1;c<=fac;c++)                n            Cn
     {
                  x=c*x;                   0             1
                  }
     for(c=1;c<=n;c++)                     1             1
     {
                  factorial=c*factorial;   2             2
                  }
                                           3             5
    catalan= b/(x*factorial);
    printf("catalan=%d",catalan);          4            14
    getche();
    return 0;                              5            42
}
                                           6           132

                                      PRIMEROS 6 NÚMEROS CATALAN
#include<stdio.h>
#include<conio.h>
double res;
double numeroscatalan(double n);
main(double n)
{
printf("ttNUMEROS DE CATALANn");
printf("Numero: ");
scanf("%lf",&n);

res=numeroscatalan(n);

printf("Catalan:%.0lf",res);
getche();
      }
double numeroscatalan(double n)
{
if (n==0) //Condicion de parada de la recursión
{
return 1;
}
else
{

return(2*((2*n)-1))/(n+1)*numeroscatalan(n-1);

}
}
El código se simplifica.
  Cuando utilizamos una estructura de datos recursiva ejemplo: arboles.
  Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y
elegantemente simples.




 Cuando los métodos usen arreglos largos.
 Cuando el método cambie de manera impredecible de campos.



 Recomendamos utilizar solo la recursión cuando algún problema no se
pueda realizar de forma iterativa o que sea más fácil realizarlo con
recursión. Para este problema el algoritmo recursivo es mejor.

Contenu connexe

Tendances (19)

Programación 1: introducción a C
Programación 1: introducción a CProgramación 1: introducción a C
Programación 1: introducción a C
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
 
El metodo-hungaro
El metodo-hungaroEl metodo-hungaro
El metodo-hungaro
 
Deber funciones-numero-1
Deber funciones-numero-1Deber funciones-numero-1
Deber funciones-numero-1
 
Divisores de un número (código Dev C++)
Divisores de un número (código Dev C++)Divisores de un número (código Dev C++)
Divisores de un número (código Dev C++)
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
Programa 2
Programa 2Programa 2
Programa 2
 
Resolver Serie
Resolver SerieResolver Serie
Resolver Serie
 
Examensinrespuesta
ExamensinrespuestaExamensinrespuesta
Examensinrespuesta
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Programación 1: algoritmos
Programación 1: algoritmosProgramación 1: algoritmos
Programación 1: algoritmos
 
Integral de riemann
Integral de riemannIntegral de riemann
Integral de riemann
 
Examen trianual informatica
Examen trianual informaticaExamen trianual informatica
Examen trianual informatica
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Guia 2nd o & 3er
Guia 2nd o & 3erGuia 2nd o & 3er
Guia 2nd o & 3er
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Deber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-niseDeber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-nise
 
Palindromos
PalindromosPalindromos
Palindromos
 

Similaire à Catalan (20)

Catalan
CatalanCatalan
Catalan
 
Catalan
CatalanCatalan
Catalan
 
Arreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionalesArreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionales
 
Classpad 330
Classpad 330Classpad 330
Classpad 330
 
Classpad 330
Classpad 330Classpad 330
Classpad 330
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
Ejercicios de Programación Matemática Aplicada
Ejercicios de Programación Matemática Aplicada Ejercicios de Programación Matemática Aplicada
Ejercicios de Programación Matemática Aplicada
 
Funciones Clase1
Funciones Clase1Funciones Clase1
Funciones Clase1
 
Matlab2009b -clase2
Matlab2009b  -clase2Matlab2009b  -clase2
Matlab2009b -clase2
 
Modulo 10 - miércoles.pptx
Modulo 10 - miércoles.pptxModulo 10 - miércoles.pptx
Modulo 10 - miércoles.pptx
 
Tarea info
Tarea infoTarea info
Tarea info
 
Trabajo matlab
Trabajo matlabTrabajo matlab
Trabajo matlab
 
Trabajo matlab
Trabajo matlabTrabajo matlab
Trabajo matlab
 
Semana2
Semana2Semana2
Semana2
 
Clase 10
Clase 10Clase 10
Clase 10
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 

Plus de Blanca Rodríguez (20)

Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Fase4
Fase4Fase4
Fase4
 
Adaptativos
AdaptativosAdaptativos
Adaptativos
 
Interfaz Gráfica
Interfaz GráficaInterfaz Gráfica
Interfaz Gráfica
 
Prefinal
PrefinalPrefinal
Prefinal
 
Proyecto
ProyectoProyecto
Proyecto
 
Catalan
CatalanCatalan
Catalan
 
Catalan
CatalanCatalan
Catalan
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
Prolog
PrologProlog
Prolog
 
Palíndromo.ppt
 Palíndromo.ppt  Palíndromo.ppt
Palíndromo.ppt
 
Palíndromo.ppt
 Palíndromo.ppt  Palíndromo.ppt
Palíndromo.ppt
 
Logico1
Logico1Logico1
Logico1
 
Logico1
Logico1Logico1
Logico1
 
Caballos
CaballosCaballos
Caballos
 
Caballos
CaballosCaballos
Caballos
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Levenshtein (2)
Levenshtein (2)Levenshtein (2)
Levenshtein (2)
 
Levenshtein (2)
Levenshtein (2)Levenshtein (2)
Levenshtein (2)
 
LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓNLENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓN
 

Dernier

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 

Dernier (20)

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 

Catalan

  • 1. MENU RECURSIÓN E ITERATIVIDAD NUMEROS DE CATALAN ALGORITMOS EJECUCIÓN DE LOS ALGORITMOS CONCLUSIONES Y RECOMENDACION ES
  • 2. La recursión o recursividad es un concepto amplio, con muchas variantes. Aparece en numerosas actividades de la vida diaria; por ejemplo en una fotografía donde se observa otra fotografía. La recursión es un recurso muy poderoso que permite expresar soluciones simples y naturales a ciertos tipos de problemas. Es importante considerar que no todos los problemas son naturalmente recursivos. Un objeto recursivo es aquel que aparece en la definición de sí mismo, así como el que se llama a sí mismo.
  • 3. Subprograma P Directa: el programa o subprograma se -------------------------- llama directamente a sí mismo. -------------------------- -------------------------- -------------------------- Llamada a P Subprograma P Subprograma Q -------------------------- -------------------------- -------------------------- -------------------------- Indirecta: el -------------------------- -------------------------- -------------------------- -------------------------- subprograma llama a Llamada a Q Llamada a P otro subprograma, y éste, en algún momento, llama nuevamente a primero. La iteración es la repetición de una secuencia de instrucciones o eventos por un cierto numero de veces.
  • 4. Estos números se utilizan en una gran variedad de problemas de combinatoria. Tienen varias aplicaciones; por ejemplo, determinar el numero de formas en que un polígono con n+2 lados se puede descomponer en n triángulos. En combinatoria los números de catalán forman una secuencia de números naturales. Obtienen su nombre del matemático belga Eugéne Charles Catalan El enésimo numero de catalán se obtiene con la formula con n>=0 La complejidad computacional de este problema es P ya que puede ser resuelto en un tiempo polinómico por una maquina Turing Determinista y que puede ser tratable.
  • 5. El problema de distancia de Los numero s de catalán se puede realizar con recursión al igual que iterativamente. 1. Inicio 2. Asignar variables: a, c, n, b=1,fac,x=1,factorial=1. 3. Pedir el numero natural la cual será la posición del numero catalán. 4. Insertar el numero. 5. Asignarlo a la variable n. 6. La formula para sacar el numero de catalán es: Con esto separamos las operaciones en a= 2n; fac=n+1 y x. 7. Asignamos la primera operación a=2n y ponemos un for para sacar su factorial ya multiplicado: a=2*n; for(c=1;c<=a;c++) b=c*b; 7.1El resultado de la operación pasa al for y el resultado de la primera operación se va asignando a la variable b, lo cual se va multiplicando esta misma por todos los valores anteriores a n. El resultado se asigna a la variable b.
  • 6. 8. Lo mismo pasa con la formula fac=n+1 Se hace con otro for : fac=n+1; for(c=1;c<=fac;c++) x=c*x; Repetir paso 7.1y el resultado se asigna a la variable x. 9. Con la tercera formula se hace lo mismo : for(c=1;c<=n;c++) factorial=c*factorial; Entonces se realiza lo mismo que en el paso 7.1 pero solo se saca el factorial de n, el resultado se asigna a la variable factorial. 10. Ya que sacamos el resultado de las tres formulas las juntamos: catalan= b/(x*factorial) 11. Se despliega el resultado.
  • 7. 1. Inicio 2. Pedir el numero 3. Asignarlo a la variable n. 4. Mandar a llamar a la función numeroscatalan. 5. Preguntar si el numero es igual a cero: Si es verdad numeroscatalan=1(estado basico) Si es Falso numeroscatalan=(2*((2*n)-1))/(n+1)*numeroscatalan(n-1). 5. Imprimir numeroscatalan. 6.Fín Asintóticamente los números de catalán crecen:
  • 8. #include<stdio.h> #include<conio.h> main() { int catalan,a,c,n,b=1,fac,x=1,factorial=1; printf("ttttNUMEROS DE CATALANn"); printf(“Numero:"); scanf("%d",&n); a=2*n; for(c=1;c<=a;c++) { b=c*b; }
  • 9. fac=n+1; for(c=1;c<=fac;c++) n Cn { x=c*x; 0 1 } for(c=1;c<=n;c++) 1 1 { factorial=c*factorial; 2 2 } 3 5 catalan= b/(x*factorial); printf("catalan=%d",catalan); 4 14 getche(); return 0; 5 42 } 6 132 PRIMEROS 6 NÚMEROS CATALAN
  • 10. #include<stdio.h> #include<conio.h> double res; double numeroscatalan(double n); main(double n) { printf("ttNUMEROS DE CATALANn"); printf("Numero: "); scanf("%lf",&n); res=numeroscatalan(n); printf("Catalan:%.0lf",res); getche(); }
  • 11. double numeroscatalan(double n) { if (n==0) //Condicion de parada de la recursión { return 1; } else { return(2*((2*n)-1))/(n+1)*numeroscatalan(n-1); } }
  • 12. El código se simplifica. Cuando utilizamos una estructura de datos recursiva ejemplo: arboles. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples. Cuando los métodos usen arreglos largos. Cuando el método cambie de manera impredecible de campos. Recomendamos utilizar solo la recursión cuando algún problema no se pueda realizar de forma iterativa o que sea más fácil realizarlo con recursión. Para este problema el algoritmo recursivo es mejor.