Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Computing Powers (Exercise 1) Computing a positive integer power of a number

ID: 3938488 • Letter: 1

Question

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

}

}  

Explanation / Answer

//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