TailChain_Recusion1
  • A call stacking
Code :

package javatemplate1;
// JavaFx tutorials:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaTemplate1 {
public static void main(String[] args) throws IOException {
// TODO code application logic here
System.out.println("main block executing ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Type number :");
String str = "";
str = br.readLine();
int y = Integer.parseInt(str);
//
System.out.println("factorial: "+ factorial(y));
} // end main

public static int factorial( int n1 )
{

if (n1==1) { return n1; }
else {
System.out.println("f-received ::Base "+ n1);
return recursion_1(n1,1);

}
}
// end method head factorial
private static int recursion_1 ( int n, int sum )
{
int x, fact = sum;
if(n==1)
{ return sum; }
else
{
print(n);
sum = sum *n;
System.out.println("f- tail sum :: "+ n + " * "+ fact+ " = "+ sum);
return recursion_1(n-1,sum);
}

}

//
public static void print(int n1 )
{ System.out.println( "tail processed "+n1); }

}
 

Runtime displays: