Ejemplos de Recursividad C++ Elevar un número entero a otro

Función recursiva para calcular x elevado a y siendo x un número entero e y un número entero mayor o igual que 0.

La solución recursiva se basa en que si y = 0 entonces m^0 = 1  (caso base)

Si y > 0  Podemos calcular x^y  como  x * x^(y-1)

Por ejemplo: 

para los valores x = 2  y = 5
x^y => 2^5 = 2 * 2^4
El programa que calcula x elevado a y de forma recursiva es el siguiente.
La función recursiva que realiza el cálculo es la función potencia.

#include <iostream>
using namespace std;
double potencia(int, int);
int main()
{
    int x, y;
    cout << "Introduzca base: ";
    cin >> x;
    do
    {
        cout << "Introduzca exponente >=0 : ";
        cin >> y;
    }while(y<0);
    cout << x << " elevado a " << y << " = " << potencia(x,y) << endl;
    system("pause");
}
double potencia(int x, int y)
{
 if (y==0)
     return 1;
 else
     return x*(potencia(x,y-1));
}

La solución iterativa (no recursiva) del problema es la siguiente:
#include <iostream>
using namespace std;
double potencia(int, int);
int main()
{
    int x, y;
    cout << "Introduzca base: ";
    cin >> x;
    do
    {
        cout << "Introduzca exponente >=0 : ";
        cin >> y;
    }while(y<0);
    cout << x << " elevado a " << y << " = " << potencia(x,y) << endl;
    system("pause");
}
double potencia(int x, int y)
{
           double resultado=1;
           int i;
           for(i=1;i<=y;i++)
               resultado = resultado * x;
           return resultado;
}

7 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Aqui hay un video que explica como hacer la potencia de un numero usando recursividad:
    https://www.youtube.com/watch?v=1xN-yeUhoJA&t=24s
    Saludos!!

    ResponderEliminar
  3. Ayúdenme con este ejercicio por favor dado un número entero por pantalla escriba los 10 números anteriores en una serie regresiva

    ResponderEliminar
  4. Buen dia me puede por favor ayudar con este ejercicio
    -Crear un programa que permita al usuario ingresar los montos de las compras de un cliente ( se desconoce la cantidad de datos que cargara, la cual puede cambiar en cada ejecución), cortando el ingreso de datos cuando el usuario ingrese el monto 0
    Si ingresa un monto negativo, no se debe procesar y se debe pedir que ingrese un nuevo monto. Al finalizar, informar el total a pagar teniendo que cuenta que, si las ventas superan en total de $1000, se debe aplicar un 10% de descuento. Recuerde van a ingresar los montos de las compras realizada, de un cliente al que deben al menos registrar su nombre al final indicarle cuanto debe pagar
    gracias de antemano

    ResponderEliminar
  5. Elaborar un algoritmo en donde se le proporcione a 5 usuarios la posibilidad de escoger una de 3 opciones posibles así:
    Opción 1: se deben entrar 8 valores, obtener el porcentaje de los mayores de 60.
    Opción 2: El usuario debe capturar los datos de 8 personas: nombre, sexo (1=hombre,2 mujer), peso, estatura. Calcular el peso promedio de las mujeres con estatura mínima de 1,70 y peso máximo de 53 kilos. Mostrar el nombre de los descartados
    Opción 3:Entrar por pantalla 4 números enteros averiguar cuántos son primos.
    NOTA: CADA USUARIO PUEDE VOLVER AL MENU LAS VECES QUE DESEE

    ResponderEliminar