Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Fibonacci

Fibonacci-Zahlen

Schreibt ein Programm, welches die ersten acht Folgeglieder der Fibonacci-Folge ausgibt. Zur Erinnerung:

  • fibonacci(0) = 0
  • fibonacci(1) = 1
  • und für n > 1 gilt: fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)

Aufgaben

1) Es soll eine Methode mit dem Namen fibonacci geschrieben werden. Diese Methode soll genau eine Variable vom Typ int und dem Namen n übergeben bekommen. Als Rückgabewert soll die Methode den zu n gehörigen Wert der Fibonacci-Folge liefern.

2) Nachdem nun die Methode mit der passenden Signatur geschrieben wurde, muss sie noch die nötige Berechnung tätigen. In diesem Beispiel soll eine rekursive Lösung verwendet werden. Die obige Definition der Fibonacci-Zahlen muss lediglich in Java Code übersetzt werden.

3) Testet die fibonacci-Methode, ob sie korrekt funktioniert, indem ein paar Werte berechnet werden.

4) Der Datentyp int beinhaltet auch negative ganze Zahlen. Was passiert, wenn die fibonacci-Methode einen negativen Eingabewert erhält? Bitte denke erst darüber nach und probiere danach aus. Korrigiere die fibonacci-Methode, so dass sie bei Eingabe von negativen Zahlen eine Fehlermeldung ausgibt und einen Fehler-Code zurückgibt. Hier wäre etwa -1 als Ergebnis vorstellbar.

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)


Ergebnis

600. Fibonacci Zahl: 289117532242004794657842939580523992192206081574833651083505729789364385249494747835588176048973824211799073812844695893338801 Sonst noch jemand der das Ergebnis mit Rekursion bekommen hat? ;-) (Don't try this at home!)

Also bei mir kommt als 600. Fib-Zahl -849170400 heraus :-P

ich hab double genommen und das raus: 2.8911753224200445E125 :D