// prints result of base to whatever non-negative integer power // Beth Katz - April 2008 import java.util.NoSuchElementException; import java.util.Scanner; public class Power { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.println("Enter base (double) and exponent (int >= 0):"); try { while (console.hasNextDouble( )) { double base = console.nextDouble( ); int expo = console.nextInt( ); if (expo < 0) { System.out.println("Exponent must be >= 0 but is " + expo); } else { System.out.println( ); System.out.println(base + " to the " + expo + " power is " + power(base, expo)); } } } catch (NoSuchElementException e) { System.out.println("Bad input"); } } // return base to the expo power private static double power(double base, int expo) { if (0 == expo) { return 1.0; } else if ((expo % 2) == 0) { // even expo double powerPart = power(base, expo/2); return powerPart * powerPart; } else { // odd expo return base * power(base, expo-1); } } }