//Fibonacci_long .java     Calcula los numeros de la serie de fibonacci con forma recursiva
//produce overflow en  n =93
//Guillermo Escobar P


   import java.awt.*;

   import java.applet.Applet ;


   public class FibonacciLong extends Applet{
      Label numLabel, resultLabel, aclaracion;
      TextField num ,result;
   
   
      public void init()
      
      {   numLabel = new Label("Teclee un numero y pulse return");
         num = new TextField(10);
         resultLabel = new Label("El valor de fibonacci con Long es ");
         aclaracion= new Label("Overflow en n=93");
         result  = new TextField(15);
         result.setEditable(false);
         add(numLabel);
         add(num);
         add(resultLabel);
         add(result);
         add(aclaracion);
      }
   
   
      public boolean action(Event e,Object o)
      
      { long number ,  fibonacciVal;
      
         number = Long.parseLong(num.getText());
         showStatus("Calculando");
         fibonacciVal = fibonacci(number); 
         showStatus("Listo");
         result.setText(Long.toString(fibonacciVal));
         return true;
      
      }
   
   
   //definicion recursiva del metodo de fibonacci
   
   
   
      long fibonacci(long n)
      
      {   
         if (n == 0 ||n == 1)  //caso base
            return n;
         else
            return fibonacci(n-1)+ fibonacci(n-2);
      }
   
   }
