1 Computing Powers Exercise 1 Computing a positive integer p
1. Computing Powers (Exercise 1)
Computing a positive integer power of a number is easily seen as a recursive process. Consider an:
· If n = 0, an is 1 (by definition).
· If n > 0, an is a * an–1
1. The program Power.java contains a main program that reads in integers base and exp and calls method power to compute baseexp. Fill in the code for power to make it a recursive method to do the power computation. The comments provide guidance.
2. Test your program on sample data.
// *****************************************************************
// Power.java
//
// Reads in two integers and uses a recursive power method
// to compute the first raised to the second power.
// *****************************************************************
import java.util.Scanner;
public class Power
{
public static void main(String[] args)
{
int base, exp;
int answer;
Scanner scan = new Scanner(System.in);
System.out.print(\"Welcome to the power program! \");
System.out.println(\"Please use integers only.\");
//get base
System.out.print(\"Enter the base you would like raised to a power: \");
base = scan.nextInt();
//get exponent
System.out.print(\"Enter the power you would like it raised to: \");
exp = scan.nextInt();
answer = power (base,exp);
System.out.println(base + \" raised to the \" + exp + \" is \" + answer);
}
// ----------------------------------------------
// Computes and returns base^exp
// ----------------------------------------------
public static int power(int base, int exp)
{
int pow;
//if the exponent is 0, set pow to 1
//otherwise set pow to base*base^(exp-1)
//return pow
}
}
Solution
//Power.java
import java.util.Scanner;
public class Power
{
public static void main(String[] args)
{
int base, exp;
int answer;
Scanner scan = new Scanner(System.in);
System.out.print(\"Welcome to the power program! \");
System.out.println(\"Please use integers only.\");
//get base
System.out.print(\"Enter the base you would like raised to a power: \");
base = scan.nextInt();
//get exponent
System.out.print(\"Enter the power you would like it raised to: \");
exp = scan.nextInt();
answer = power (base,exp);
System.out.println(base + \" raised to the \" + exp + \" is \" + answer);
}
/**
* The recursive method power that takes base
* and exp as input arguments
* and returns the base to the power of exp
* */
public static int power(int base, int exp)
{
int pow;
//if the exponent is 0, set pow to 1
if(exp==0)
pow=1;
else
pow= base*power(base,exp-1);
//return pow
return pow;
}
} //end of Power
------------------------------------------------------------------
Sample output:
Welcome to the power program! Please use integers only.
Enter the base you would like raised to a power: 2
Enter the power you would like it raised to: 16
2 raised to the 16 is 65536


