You are on page 1of 2

PRACTICA #27

Nombre: Gunsha Gusqui Cristian Daniel


Fecha:28/01/2022
Asignatura: Programación 1 Paralelo: “A”
Realizar un documento en Word donde se detalle con sus palabras las características
fundamentales de la recursividad y además implemente un ejemplo de dicho tema.

Funciones Recursivas
 Una función recursiva es una función que se llama a sí misma.
 Las funciones recursivas tienen similitud con los bucles, pero no están basados en una
declaración condicional. La función se llama siempre que se requiere el mismo código
para ejecutarse de forma reiterada.

Para escribir una función recursiva, se deben satisfacer 3 condiciones:

1. Debe haber al menos un caso base de parada


2. Paso recursivo que provoca una llamada recursiva Debe ser correcto para
distintos parámetros de entrada.
3. Cada paso recursivo debe acercar a un caso base. Se describe el problema en
términos de problemas más sencillos.

Cualquier función recursiva debe tener un “caso base” (paso 1), el caso base es cualquier
expresión donde le dice a la función cuándo dejar de llamarse a sí misma. Si no tiene un caso
base, la recursión producirá un bucle infinito.

Las funciones recursivas pueden usarse para actividades que son recursivas por
naturaleza y que tienen las siguientes características.

 Cuando los problemas son más cercanos a la descripción matemática.


 Cuando su lectura es más fácil de analizar
 En estructuras que se adaptan mejor a estructuras de datos recursivas.
 Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y
elegantemente simples.

Ejemplo:

//calcular la factorial de un número

#include<iostream>

using namespace std;

int factorial(int n) {

if (n < 0) return 0;

else
if (n > 1) return n * factorial(n - 1);

return 1;

int main() {

int n, r;

char ops;

do {

cout << "Ingrese un número : ";

cin >> n;

r = factorial(n);

cout << n << "! = " << r << endl;

cout << endl << "Pulse cualquier tecla para continuar o n para
finalizar...";

cin >> ops;

} while (tolower(ops) != 'n');

You might also like