68.9k views
22 votes
Melissa wrote the following method in Java. It is designed to compute 2^n, but returns an incorrect result. In which line has she made a mistake?

public static int powerTwo(int n)
if (n == 1){
return 1;
} else {
return 2 + powerTwo(n-1);

1 Answer

6 votes

Answer:

public static int powerTwo(int n) {

if (n == 0){

return 1;

} else {

return 2 * powerTwo(n-1);

}

}

Step-by-step explanation:

There are actually three mistakes:

  • 2⁰ = 1, so the end criterium of the recursion should be n==0
  • the + should be a *
  • various curly braces missing
User Scott Langham
by
3.3k points