public class TailRecursion { public String drawLine1(int n){ if(n == 0) return ("------"); else { String s = ""; for (int i=0; i <= n ; i++){ s += "*"; } s += "\n"; //add a new line return s + drawLine1(n-1) ; } } public void drawLine2(int n){ if(n == 0) System.out.println("------"); else { for (int i=0; i <= n ; i++){ System.out.print("*"); } System.out.println(); drawLine2(n-1); } } public void drawLine3(int n){ if(n == 0) System.out.println("------"); else { drawLine3(n-1); for (int i=0; i <= n ; i++){ System.out.print("*"); } System.out.println(); } } public TailRecursion() { System.out.println("drawLine1 : "); String s= drawLine1(5); System.out.println(s); System.out.println("drawLine2: "); drawLine2(5); System.out.println("drawLine3: "); drawLine3(5); } }