7.4.5  Fibonacci-Zahlen nicht rekursiv
 
Download:
FibonacciDemo2. java
import info1.*;

public class FibonacciDemo2 {
   //gültig bis n= 92
   public static void main (String[] args) {
     System.out.print("a: ");
     int a = Console.in.readInt();
     System.out.println("fib("+a+") = "+fibonacci(a));
   }
   private static long fibonacci(int a){
      long fib = 1;
      /*Schleife wird nur abgearbeitet, wenn n >= 3
        bis n = 92 werden die Fibonaccizahlen korrekt
        berechnet. Dann ist der Bereich von long zu klein
      */
      for (long fib1 = 1, fib2 = 1, i=3; i <= a; i++){
         fib =  fib1 + fib2;
         fib1 = fib2;
         fib2 = fib;
      }
      return fib;
   }
}
Bemerkungen Der Quelltext spricht für sich. Er ist leicht zu durchschauen. Bemerkenswert ist etwas anderes. Wir sehen, dass man im Deklarationsteil der for-Schleife mehrere Variable deklarieren kann; wir trennen sie durch Kommata. Ein andere kleine Änderung wurde noch vorgenommen; der Rückgabewert der Methode ist vom Typ long. So können wir auch größere Fibonacci-Zahlen berechnen lassen. Bei der rekursiven Methode scheiterte dies schon am zeitlichen Aufwand.
 
zu 7.4.6 Übungen
zur Startseite www.pohlig.de  (C) MPohlig 2006