package Lecture10; import javax.swing.*; public class Exponentiation2 { public static void main(String[] args) { int z; String input= JOptionPane.showInputDialog("Introduzca x:"); int x= Integer.parseInt(input); input= JOptionPane.showInputDialog("Introduzca y:"); int y= Integer.parseInt(input); z= ExpResult(x, y); System.out.println(x + " elevado a " + y + " es: " + z); System.exit(0); } public static int ExpResult(int x, int y) { int result; if (y == 1) // y lo bastante pequeño result= x; else if (y % 2 == 0) { // y par int term= ExpResult(x, y/2); // ¡No haga 2 llamadas recursivas! result= term * term; } // cuadrado(ExpResult(x, y/2) else // y impar result= x * ExpResult(x, y-1); // Añada println para trazar System.out.println(x + " elevado a " + y + " = " + result); return result; } }