/* Calcul du nombre de Fibonacci                */
/* au moyen d'une fonction récursive            */
/* Mesure du temps d'exécution                  */

public class NombreFibonacciAvecMesureDeTemps {

/* Fonction de calcul et retour                */
/* de Fib(n) par methode recursive             */
/* 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;
    switch (n) {
      case 0 :
      case 1 : {
        res = n; }
        break;
      default : {
        res = fib(n-1)+fib(n-2); }
        break; }
    return res;
  }
  
/* Programme principal                          */

  public static void main(String [] args) {
    for ( int n = 0 ; n <= 50 ; n = n+1 ) {
      Ecran.formater("%5d : ",n);
      long ti = System.nanoTime();
      long fibn = fib(n);
      long tf = System.nanoTime();
      Ecran.formater("%15d %15d %8.2f\n",tf-ti,fibn,(double) (tf-ti)/fibn); }
  }
}