Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2023/2024

Solución del ejercicio 10 del tema 1

Código de prueba

double potenciaNoNegativa(double base, int exponente) {

   if (exponente == 0)
      return 1;

   double resultado = potenciaNoNegativa(base, exponente / 2);

   if (exponente % 2 == 0)
      return resultado * resultado;
   else
      return resultado * resultado * base;

}

double potencia(double base, int exponente) {

   if (exponente < 0)
      return 1 / potenciaNoNegativa(base, -exponente);
   else
      return potenciaNoNegativa(base, exponente);

}
      

Se podrá hacer en una sola función lo que en la solución anterior se ha separado en dos funciones. En este caso al separarlo así en dos funciones ganamos que la comprobación de si el exponente es negativo se haga una sola vez en vez de hacerse en cada llamada recursiva.