Hat jemand Verbesserungsvorschläge für dieses Programm?
Hallo, ich versuche gerade ein Programm zu schreiben (in Java Eclipse), das folgende Aufgabenstellung hat:
Das Programm soll alle Fibonacci-Zahlen in einem geschlossenen Intervall [a, b] als kommagetrennte Liste ausgeben. Ausnahme: die Zahlen, die durch 3 teilbar sind, sollen durch ";" separiert sein. Die natürlichen Zahlen a und b müssen vom Benutzer eingegeben werden.
Beispiel 1 (blau = Benutzereingabe):
a: 3
b: 100
Fibonacci=3;5,8,13,21;34,55,89
Beispiel 2:
a: 12
b: 800
Fibonacci=13,21;34,55,89,144;233,377,610
UND Teil 2
Das Programm soll noch eine Liste mit den ungeraden Fibonacci-Zahlen und den Intervallenden a und b ausgeben. Auch hier gilt, dass alle Zahlen, die durch 3 teilbar sind, durch einen folgenden Strichpunkt zu kennzeichnen sind. Eine Zahl darf nicht doppelt in der Ausgabe vorkommen.
Für obige Eingabe sollte also zusätzlich folgende Zeile ausgegeben werden:
Beispiel 1
ungerade Fibonacci=[3;5,13,21;55,89,100]
Beispiel 2
ungerade Fibonacci=[12;13,21;55,89,233,377,800]
Soviel zur Aufgabenstellung.
Bis jetzt habe ich folgendes ( siehe Bild) geschafft. Meine Problem: wenn der Benutzer zum Beispiel für a 10 und für b 20 eingibt, dann zeigt das Programm die zehnte bis zwanzigste Zahl, aber es sollte eigentlich nur 13 anzeigen. Des Weiteren weis ich nicht, was ich machen sollte, damit nach jeder ungeraden Zahl ein ; steht. und Teil 2 der Aufgabe ist mir auch nicht klar, aber ich wäre schon glücklich genug, wenn mir jemand bei Teil 1 helfen könnte!
Danke und liebe Grüße!
2 Antworten
- Formatierung
- ungeraden Zahl ein ; steht -> Modulo Operator if(zahl % 2 == 1) -> ungerade
- müssen die Variablen oben wirklich static sein, man kann die doch auch in die main methode packen?
Dein Programm durchläuft die Schleife von 10 bis 20 (inklusive). Der aktuelle Schleifendurchlaufswert steht immer in i drin. Aber in deiner Berechnung kommt i nirgendwo vor. Stattdessen rechnest du mit x und y. Und - tja - das wird dann eben 20 - 10 + 1 x durchgemacht.
Dein Programm macht genau das, was du ihm gesagt hast. Sieht also deiner Beschreibung nach alles in Ordnung aus.