001    package de.hska.java.aufgaben.rekursion;
002    
003    /**
004     * Fibonacci ist verantwortlich für die Berechnung
005     * der Fibonaccizahlen. 
006     * <p>
007     *   <a href="http://www.home.hs-karlsruhe.de/~pach0003/informatik_1/aufgaben/rekursion.html#fibonacci">Zurück zum Aufgabentext</a>
008     * </p>
009     * @author Christian Pape
010     *
011     */
012    public class Fibonacci {
013    
014        /**
015         * Gibt die n-te Fibonaccizahl zurück.
016         * Laufzeit ist O(log<sub>n</sub>).
017         */
018        public long getFibonacci(int n) {
019            Matrix matrix = new Matrix(1, 1, 1, 0);
020            
021            matrix = matrix.potenzieren(n);
022            
023            return matrix.get(0,1);
024        }
025    }