Ejercicio 6. Potencia

Escribe un programa que dados dos números, uno real (base) y un entero positivo (exponente), saque por pantalla el resultado de la potencia. No se puede utilizar el operador de potencia.

Continuamos repasando los bucles en JAVA, en esta ocasión, para realizar el ejercicio que nos solicitan nos piden que no utilicemos ni el operador potencia (**) ni el método Math.pow(base, exponente);

Sin embargo, este ejercicio, creo que no ofrece una gran dificultad, siempre y que tengamos claro el funcionamiento de una potencia ¿cuál es el mismo?

Simplemente, se trata de multiplicar el número por si mismo tantas veces como indique el exponente.

Petición de datos

En primer lugar vamos a proceder a pedir al usuario los datos correspondientes para el ejercicio. base será una variable de tipo double. En el caso de exponente debe ser tipo int y además, debemos controlar que sea un número positivo. Para ello, realizaremos un bucle que se encargue de controlarlo.

do{
incluye exponente
Si hay error, muestra mensaje de error
} while (exponente < 1);

Cálculo del resultado

Para realizar el cálculo del resultado, debemos realizar un bucle que realice la operación de multiplicar la base por sí misma, tantas veces como el exponente nos indique.

Para ello, en primer lugar, he creado una variable, de tipo double llamada resultado que empezará siendo igual a la base.

for (int i = 1; i < exponente; i++) {
resultado = (resultado * base);
}

Después debemos entrar en el bucle, en mi caso, he creado una estructura for donde el contador (i) lo he inicializado a 1, y la condición es que el bucle estará en funcionamiento siempre que i < exponente. Con esta condición, lo que hacemos, es que si el exponente incluido por el usuario es 1, no entre en la estructura for, y directamente mostrará el resultado de la operación, el cual equivaldrá a la base.

En caso de entrar en la estructura for, resultado almacenará la multiplicación por la base tantas veces como el exponente nos requiera.

package estructurasRepetitivas;

/**
06 Ejercicios Estructuras Repetitivas en Java

Programa:
Escribe un programa que dados dos números, uno real (base) y un entero positivo (exponente),
saque por pantalla el resultado de la potencia. No se puede utilizar el operador de potencia.

@author: manolohidalgo_
@date: 11-11-19

Variables a utilizar:
    base (double)
    exponente (int)
    i (int)
    resultado (double)

ALGORITMO
    LEER base, exponente
    Crear "do-while" para hasta que el exponente sea positivo.
    Realizar ciclo for multiplicando base * base tantas veces como indique el exponente.
    MOSTRAR resultado
*/

import java.util.Scanner;
// Inicio del programa y declaración de variables:
public class Ej06Potencia {
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    double base;
    int exponente;
    double resultado;

    // Inicio del programa, explicación al usuario
    System.out.println("El programa solicitará un número real como base y el exponente "
        + "(entero positivo) para calcular una potencia.");
    // Pedimos datos al usuario
    System.out.print("Introduce la base de la potencia: ");
    base = scanner.nextDouble();
    do {
      System.out.print("Introduce el exponente (entero positivo) de la potencia: ");
      exponente = scanner.nextInt();
      if (exponente <= 0) {
        System.out.println("Error, el exponente debe ser un entero positivo.");
      }
    } while (exponente <= 0);
    resultado = base;
    // Realizamos bucle para repetir la multiplicación de la base consigo misma hasta obtener el resultado de la potencia.
    for (int i=1; i<exponente;i++){
      resultado = (resultado*base);
    }
    // Mostramos el resultado
    System.out.println("El resultado de la potencia es " + resultado);
  }
}

Puedes acceder a este ejercicio en GitHub en este enlace

Si tienes alguna duda al respecto, alguna sugerencia o algo que no te haya quedado claro, no tienes más que escribirme en los comentarios, estoy aquí para ayudarte y aprender, ¡Nos leemos!