Simple_TailRecursion2
 
 
Code:

package javafxtemplate1;

//textProperty().addListener Listview Label
import java.beans.EventHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventType;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;


/**
*
* @author Manas9
*/
public class JavaFXTemplate1 extends Application {
TextArea textArea1= new TextArea ();
TextArea textArea2= new TextArea ();
String newLine = "\n";static int xx1 ;
TextField textField = new TextField ();
Label label1 = new Label();
@Override
public void start(Stage primaryStage) throws Exception {
//
Group groot1 = new Group();
label1.setText("Type anything");
label1.setLayoutX(10);label1.setLayoutY(30);
Button calculate = new Button("Calculate");
calculate.setLayoutX(80);calculate.setLayoutY(0);
Button btn = new Button();
btn.setLayoutX(10);btn.setLayoutY(0);
textArea1.setLayoutX(10);textArea1.setLayoutY(90);
textArea1.setPrefHeight(300);textArea1.setPrefWidth(300);
textArea1.setPromptText("textarea1");
//
textArea2.setLayoutX(100);textArea2.setLayoutY(90);
textArea2.setPrefHeight(100);textArea2.setPrefWidth(100);
textArea2.setPromptText("textarea2");
//

textField .setLayoutX(160);textField .setLayoutY(20);
textField.setPromptText("Enter an Integer");
calculate.setOnAction(e->ctrlBtnClicik());
btn.setText(" Clear");
btn.setOnAction(e->clearArea()) ;

groot1.getChildren().addAll(label1, textField, textArea1, calculate, btn);

//Scene scene = new Scene(groot, 350, 150);
Scene scene = new Scene(groot1, 350, 250);
primaryStage.setScene(scene);
primaryStage.setTitle("Linked Data:: Recursions");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
private int recursion(int n1) {

if (n1==1) { return n1; }
else {
textArea1.appendText("f-received ::Base "+ n1+ newLine);
return recursion_1(n1,1);
// return gcd(n1, 2);
}

}
private int recursion_1 ( int n, int sum )
{
int x, fact = sum;
if(n==1)
{ return sum; }
else
{
print(n);
sum = sum *n;
textArea1.appendText("f- tail sum :: "+ n + " * "+ fact+ " = "+ sum+ newLine);
return recursion_1(n-1,sum);
}

}
private void print(int n1)
{
textArea1.appendText("f-tail proessed :: "+ n1 +newLine);
}
private int gcd(int p, int q) {
int sum = p% q;

textArea1.appendText("gcd " + p + newLine);
if (q == 0){ return p;}
else{
textArea1.appendText("gcd else " + sum + newLine);
return gcd(q, sum);}
}
private void ctrlBtnClicik(){
int xy1=Integer.parseInt(textField.getText());
label1.setText("you Entered "+ xy1);
//gcd(xy1, 3);
textArea1.appendText("factorials "+String.valueOf(recursion(xy1)));
}
private void clearArea()
{
textArea1.clear();
}
}
 

clearing label and textarea

Try another number