






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
La recursividad es un método para resolver problemas complejos mediante casos más sencillos del mismo problema. Una función recursiva se define como aquella que se llama a sí misma, reduciendo gradualmente la complejidad hasta llegar a un caso trivial. Un ejemplo clásico es el cálculo de la factorial de un número. La factorial de un número se puede calcular multiplicando ese número por las factoriales de los números que le preceden, hasta llegar a uno. La siguiente clase C# muestra una función recursiva para calcular la factorial de un número. La documentación también incluye consideraciones importantes sobre la primera parte de la función recursiva y la anidación de instrucciones if.
Tipo: Guías, Proyectos, Investigaciones
Subido el 19/11/2022
3 documentos
1 / 12
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Recursividad La recursividad consiste en resolver un problema a partir de casos más simples del mismo problema. Una función recursiva es aquella que se "llama a ella misma", reduciendo la complejidad paso a paso hasta llegar a un caso trivial. Uno clásico es el "factorial de un número": La factorial de 1 es 1: 1! = 1 Y la factorial de un número arbitrario es el producto de ese número por los que le siguen, hasta llegar a uno: n! = n · (n-1) · (n-2) · ... · 3 · 2 · 1 (por ejemplo, la factorial de 4 es 4 • 3 • 2 • 1 = 24) Si pensamos que la factorial de n-1 es (n-1)! = (n-1) · (n-2) · (n-3) · ... · 3 · 2 · 1 Entonces podemos escribir la factorial de un número a partir de la factorial del siguiente número: n! = n · (n-1)! using System; public class Ejemplo_05_10a { public static long Factorial(int n) { if (n== 1 ) // Aseguramos que termine (caso base) return 1 ; return n * Factorial(n- 1 ); // Si no es 1, sigue la recursión } public static void Main() { int num; Console.WriteLine("Introduzca un número entero: "); num = Convert.ToInt32(System.Console.ReadLine()); Console.WriteLine("Su factorial es: {0}", Factorial(num)) }
Dos consideraciones importantes: Atención a la primera parte de la función recursiva: es muy importante comprobar que hay salida de la función, para que nuestro programa no se quede dando vueltas todo el tiempo y deje el ordenador (o la tarea actual) "colgado". Debemos encontrar un "caso trivial" que alcanzar, y un modo de disminuir la complejidad del problema acercándolo a ese caso. Las factoriales crecen rápidamente, así que no conviene poner números grandes: la factorial de 16 es 2.004.189.184, luego a partir de 17 podemos obtener resultados erróneos, si usamos números enteros "normales". La instrucción "if" tiene un par de modificadores que ayudan a tener mayor control del programa