ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Recursividad


Enviado por   •  7 de Marzo de 2021  •  Apuntes  •  1.687 Palabras (7 Páginas)  •  79 Visitas

Página 1 de 7

RECURSIVIDAD

  • La recursividad es un concepto fundamental en matemáticas y en computación.
  • Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos se hacen llamadas recursivas.
  • Se puede usar en toda situación en la cual la solución pueda ser expresada como una secuencia de movimientos, pasos o transformaciones gobernadas por un conjunto de reglas no ambiguas.

FUNCIÓN RECURSIVA

Las funciones recursivas se componen de:

  • Caso base: una solución simple para un caso particular (puede haber más de un caso base).

FUNCIÓN RECURSIVA

• Caso recursivo: una solución que involucra volver a utilizar la función original, con parámetros que se acercan más al caso base. Los pasos que sigue el caso recursivo son los siguientes:

1. El procedimiento se llama a sí mismo

2. El problema se resuelve, tratando el mismo problema, pero de tamaño menor

3. La manera en la cual el tamaño del problema disminuye asegura que el caso base eventualmente se alcanzará

EJEMPLO

Realice un programa en C++ que resuelva tanto recursivamente como interactivo, los siguientes:

  1. Factorial de "N"
  2. Obtenga el cociente de la división de dos números enteros positivos.
  3. Potencia de un número "X" elevado a la "N".
  4. Máximo común Divisor de dos números "X" y "Y" por el Método Euclides
  5. Conversión de un número entero positivo a binario.
  6. Obtener el "N-ésimo" valor de la serie de Fibonacci. 

#include <bits/stdc++.h>

#include <math.h>

#include <string>

using namespace std;

int cociente(int, int);

int main(void)

{

        

    int opc,n,i,fibonacci;

 

    cout<<"\n\n  Bienvenido";

    cout << "\n\n  Seleccione una de las opciones:";

    cout<<"\n  1)  Factorial de N";

    cout<<"\n  2)  Obtenga el cociente de la division de dos numero enteros positivos";

    cout<<"\n  3)  Potencia de un numero X elevado a la N";

    cout<<"\n  4)  Maximo comun Divisor de dos numeros X y Y por el Metodo Euclides";

    cout<<"\n  5)  Conversion de un numero entero positivo a  binario";

    cout<<"\n  6)  Obtener el (N-esimo) valor de la serie de Fibonacci";

    cout<< "\n\n  R=";

    cin>>opc;

 

switch(opc)

{

case 1:

        {

   system("color 02");        

   int n,i;

   long double factorial; // se declara long double para poder representar números grandes

   cout << "\n  Introduce un numero:\n  R= ";

   cin >> n;

   factorial=1;

   for(i=1;i<=n;i++)

        factorial = factorial * i;

   cout << endl << "\n  Factorial de " << n << " ==> " << factorial << endl;

   system("pause");

   break;

        }

case 2:

{

        system("color 01");

    int cociente, dividendo, divisor, resto;

    cout << "\n   Introduzca dividendo (entero): " ;

    cin>> dividendo;

    cout << "\n   Introduzca divisor (entero): " ;

    cin>> divisor;

    if ( dividendo > 0 && divisor > 0 )

    {

        cociente = 0;

        resto = dividendo;

        while ( resto >= divisor )

        {

            resto -= divisor;

            cociente++;

        }

        cout << "\n   %d div %d = %d ( Resto = %d )", dividendo, divisor, cociente, resto ;

    }

    else

        cout << "\n   ERROR: Ambos n%cmeros deben ser mayores que cero.", 163 ;

break;

}

case 3:

        {

        system("color 06");        

        int n1,n2;

    cout << "\n\n  Introduce el valor de X:\n  R=";

    cin >> n1;

    cout << "\n\n  Introduce el valor de N:\n  R=";

...

Descargar como (para miembros actualizados) txt (6 Kb) pdf (82 Kb) docx (11 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com