Problem:
Given base and n that are both 1 or more, compute recursively (no loops) the value of base to the n power, so powerN(3, 2) is 9 (3 squared).
powerN(3, 1) → 3
powerN(3, 2) → 9
powerN(3, 3) → 27
Solution:
public int powerN(int base, int n) {
  if (n == 0) return 1;
  return base * powerN(base, n-1);
}
 

 
Why isn't proper?
ReplyDeletereturn powerN(base, n);
It's illogical to me.
public int powerN(int base, int n) {
ReplyDeleteif (n == 1) return base;
return base*powerN(base,n-1);
}