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



public class FibonacciDemo3 {

   //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 Fibonacciuahlen 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 15.9 Übungen
zur Startseite www.pohlig.de  (C) MPohlig 2004