Sunteți pe pagina 1din 2

RECURSIVIDAD

Se dice que una función es recursiva cuando dentro de su bloque de sentencias hay una llamada a
la propia función. En principio cualquier función puede hacerse una llamada a sí misma, sin embargo
tiene que estar especialmente diseñada para que funcione correctamente, ya que al llamarse a sí
misma provoca que ésta se vuelva a ejecutar, y dentro de sus instrucciones se vuelve a llamar,
creando un bucle que si no está controlado se vuelve infinito.

Por lo tanto una función recursiva forma un bucle al ser llamada a sí misma. Este bucle debe ser
controlado de alguna manera para poder salir de él y no caer en estructuras indeseadas como bucles
infinitos o estructuras que se auto replican indefinidamente.

EJEMPLOS DE FUNCIONES RECURSIVAS

Calcular Factorial

El factorial de un número se define como la multiplicación de ese número por todos los que son
menores que él. Sólo los números naturales (enteros positivos) pueden tener factorial. Por ejemplo,
el factorial de 4 se define como 4*3*2*1. El factorial de 6 es 6*5*4*3*2*1.

Matemáticamente la operación factorial se define escribiendo un signo de admiración detrás del


número: 4! = 4*3*2*1.

Por lo tanto los números negativos no tienen factorial, y además el factorial de cero es 1.

#include<iostream>
using namespace std;

int factorial(int n);

int main(){
int n, r;
cout << "FACTORIAL : Digite un numero : ";
cin >> n;
r = factorial(n);
cout << n << "! = " << r << endl;
}

int factorial(int n) {
if(n < 0) return 0; // si el número es negativo
else if(n == 0) return 1; // si es 0 el factorial es 1
else if(n > 1) return n * factorial(n-1); // Recursividad: n>1
return 1; // Condici?n para n == 1 y n == 0
}
EJERCICIOS

Para los ejercicios relacionados a continuación se debe crear un menú el cual permita acceder a
cada uno de los diferentes ejercicios y a cada una de las opciones que se despliegan de los elementos
principales.

1. Solicitar al usuario que presione una tecla numérica. Mediante una función se debe
comprobar la tecla pulsada. Si esta es un número, debe salir de la función, pero si no lo es,
debe solicitar de nuevo que presione una tecla, se debe llamar a sí misma para volver a
comprobar.
2. Leer una secuencia de palabras y escribirlas en orden inverso usando recursividad.
3. Ciclo While
a. Sumar los números del 1 al 100
b. Sumar los números pares del 1 al 50
c. Sumar los números impares del 1 al 50
4. Ciclo For
a. Imprimir las tablas de multiplicar de un número, del 1 al 12
b. Solucionar el factorial de un número (Sin recursividad)
c. Solucionar una serie Fibonacci
5. Switch
a. Consultar el mes del sistema e imprimir el mes en español
b. Crear un Programa que devuelva el código ASCII de una letra ingresada.
c. Crear un programa que devuelva el código ASCII de un número ingresado del 0 al 9

S-ar putea să vă placă și