6.8.15 Lösungen |
|
Aufgabe 1 |
|
Aufgabe 2
Download: |
import info1.*; public class FibonacciDemo3 { //gültig bis n= 92 public static void main (String[] args) { StoppUhr stoppUhr1 = new StoppUhr(); long fib; System.out.print("n: "); int n = Console.in.readInt(); stoppUhr1.starten(); fib = fibonacci(n); stoppUhr1.stoppen(); System.out.println("n! = "+fib+ " RechenZeit: "+stoppUhr1); } private static long fibonacci(int n){ 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 <= n; i++){ fib = fib1 + fib2; fib1 = fib2; fib2 = fib; } return fib; } } Interessant ist, dass man im Kopf der for-Schleife mehrere Variable lokal deklarieren kann, sie werden durch Kommata getrennt. Für alle gültigen n (<=92) ist die Berechnungszeit mit 0,0 Sekunden angegeben. |
Aufgabe 3 Download: Fibonacci Demo4.java |
Auch hier ist für alle gültigen n
(<=92) die Berechnungszeit 0.0 Sekunden. Trotzdem ist leicht einzusehen,
dass der Algorithmus noch effizienter ist als der in Aufgabe 2, da keine
Schleife programmiert ist. Es bleibt allerdings die Frage offen, wie
effizient die Math-Methoden sqrt(..)
und pow(...)
sind. |
zu |
6.9 Dokumentation der Klasse
Mathematik 6.9.1 Wozu Dokumentationen? |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |