import [Link].
JOptionPane;
public class Recursion{
public static void main (String[] args) {
String choices []= {"Power", "Factorial", "Fobonacci Sequence", "Min Height
of AVL", "Exit"};
boolean running = true;
while(running){
int choice = [Link](null, "Please choose",
"Recursion Practice", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,
null, choices, choices[0]);
switch(choice){
case 0:
int x = [Link]([Link]("Enter
Base Number"));
int y = [Link]([Link]("Enter
Exponent Number"));
[Link](null, power(x,y));
break;
case 1:
int z = [Link]([Link]("Enter
Factorial Number"));
[Link](null, factorial(z));
break;
case 2:
int a = [Link]([Link]("Enter
Fibonacci Number"));
[Link](null, Fibonacci_Sequence(a));
break;
case 3:
int b = [Link]([Link]("Enter
Fibonacci Number"));
[Link](null, Height(b));
break;
case 4:
int exit = [Link](null, "Are you sure
you want to exit?", "Exit", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if(exit == JOptionPane.YES_OPTION){
[Link](null, "Closing Program...");
running = false;
}
break;
}
}
}
public static int Fibonacci_Sequence(int x){
if(x <= 1) return x;
return Fibonacci_Sequence(x-1) + Fibonacci_Sequence(x-2);
}
public static int power(int base, int pow){
if(pow == 0) return 1;
return base * power(base, pow - 1);
}
public static int factorial(int n){
if(n == 0) return 1;
return n * factorial(n-1);
}
public static int Height(int n){
if (n == 0) return 1;
if (n == 1) return 2;
return Height(n-1) + Height(n-2) + 1;
}
}