
// Metoder1.java

/******************************************************************************
/ Metoder1.java beräknar n:te Fibonacci-nummret.
/
/   n = 0, 1 : fib(n) = n
/   n > 1    : fib(n) = fib(n-1) + fib(n-2)
/
/ Programmet demonstrerar:
/
/   - Rekursivt metodanrop (i Mat.fibonacci())
/   - Anrop av metod, med parameter:
/       + i annan klass i samma katalog (Nummer.ordningsSuffix())
/       + i annan klass i eget paket (Mat.fibonacci())
/       + i annan klass i JRE paket (bl.a. System.currentTimeMillis ())
/   - Användning av resultat returnerat från metod (bl.a. Mat.fibonacci())
/
/*****************************************************************************/

import oakjava.*;

public class Metoder1
{

    public static void main(String[] args)
    {
        System.out.println ();
        System.out.println ("Beräkna n:te Fibonacci-nummret");
        System.out.println ("==============================");

		// Mata in ett heltal och kontrollera att det
		// är inom tillåtet område.
        int                 n;
        java.util.Scanner   in = new java.util.Scanner (System.in);
        in.useLocale (java.util.Locale.US);
        do
        {
            System.out.print ("Ange ett heltal n, 0 <= n <= 40 : ");
            n = in.nextInt ();
        } while ((n < 0) || (n > 40));

		System.out.println ();
        System.out.println ("Beräknar...");
        System.out.println ();

        long	t = System.currentTimeMillis ();
        System.out.println (n + ":" + Nummer.ordningsSuffix (n) + 
		                      " Fibonacci-nummret är : " + Mat.fibonacci (n));
        t = System.currentTimeMillis () - t;

		System.out.println ();
		System.out.println("Tidsåtgång : " + t + "mS");
		System.out.println();

    }

}
