/* Calcul de Fib(n) par methode sequentielle   */
/*  - Fib(0) = 0                               */
/*  - Fib(1) = 1                               */
/*  - Fib(n) = Fib(n-1)+Fib(n-2)               */

public class FibonacciSequentiel {
  
/////////////////////////////////////////////////

/* Fonction de calcul et retour                */
/* de Fib(n) par methode sequentielle          */
/* Définition:                                 */
/*  - Fib(0) = 0                               */
/*  - Fib(1) = 1                               */
/*  - Fib(n) = Fib(n-1)+Fib(n-2)               */
/* n : valeur pour laquelle Fib(n) est calculé */

  static long fib(int n) {
    long res;
    long a;
    long b;
    switch (n) {
      case 0 :
      case 1 : {
        res = n; }
        break;
      default : {
        res = 0;
        a = 0;
        b = 1;
        for ( int i = 2 ; i <= n ; i++ ) {
          res = a+b;
          a = b;
          b = res; } }
        break; }
    return res;
  }

/////////////////////////////////////////////////
  
/* Programme principal                         */

  public static void main(String [] args) {
    int n;
    long fibn;
    Ecran.afficher("Valeur ? ");
    n = Clavier.saisirInt();
    fibn = fib(n);
    Ecran.afficherln("Fib(",n,") = ",fibn);
  }
}