public class RecursionGroups { public RecursionGroups(){ System.out.println("countDown(4) : " + countDown(4)); System.out.println("printHi(5) : " + printHi(5) ); System.out.println("printPerfectSquares(5) : " + printPerfectSquares(5) ); System.out.println("doubleString(4,\"Java\") : "+ doubleString(4,"Java") ); } //Group 1 public String countDown(int fromWhere){ if(fromWhere == 1) return "1 ," ; else return fromWhere +" , "+ countDown(fromWhere-1); } //Group 2 public String printHi(int howManyTimes){ if(howManyTimes == 1) return "Hi," ; else return "Hi, " + printHi(howManyTimes-1); } //Group 3 public String printPerfectSquares(int howMany){ if(howMany == 2) return "4," ; else return howMany * howMany + ", " + printPerfectSquares(howMany-1); } //Group 4 public String doubleString(int howManyTimes, String str){ if(howManyTimes == 1) return str ; else return str + doubleString( howManyTimes - 1,str) ; } }