Write a recursive method called starString that accepts an integer as a parameter and prints to the console a string of stars (asterisks) that is 2n (i.e., 2 to the nth power) long. For example,
• starString(0) should print * (because 20 == 1)
• starString(1) should print ** (because 21 == 2)
• starString(2) should print **** (because 22 == 4)
• starString(3) should print ******** (because 23 == 8)
• starString(4) should print **************** (because 24 == 16)
The method should throw an IllegalArgumentException if passed a value less than 0.
Implementation of starString method:
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
Test Program for starString method:
public class Ch12Ex01 {
public static void main(String[] args) {
System.out.println("starString(0): " + starString(0));
System.out.println("starString(1): " + starString(1));
System.out.println("starString(2): " + starString(2));
System.out.println("starString(3): " + starString(3));
System.out.println("starString(4): " + starString(4));
}
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
}
Output:
starString(0): *
starString(1): **
starString(2): ****
starString(3): ********
starString(4): ****************