Hallo Zusammen
Ich versuche gerade in Java ein kleines fibonacci Programm zu schreiben und komme dabei mit meinem do while Statement nicht weiter. Das Problem ist, dass die do While Schlaufe spätestens aufhören sollte, wenn der maximale Long Wert überschritten/erreicht wird, das tut es aber nicht. Was ist an meiner do while Bedingung falsch?
Warum wird meine do while Schlaufe nicht beendet sobald das "ergebnis" grösser als "Long.MAX_VALUE" ist?
Interessant ist vor allem, die Wiederholung Nummer 93:
Wäre sehr dankbar über eine hilfreiche Antwort.
Vielen Dank.
Gruss Phil
Ich versuche gerade in Java ein kleines fibonacci Programm zu schreiben und komme dabei mit meinem do while Statement nicht weiter. Das Problem ist, dass die do While Schlaufe spätestens aufhören sollte, wenn der maximale Long Wert überschritten/erreicht wird, das tut es aber nicht. Was ist an meiner do while Bedingung falsch?
Java:
import java.util.Scanner;
public class fibonacci {
public static void main(String[] args) {
int input;
long zahl1 = 0;
long zahl2 = 1;
int wiederholung = 0;
long ergebnis = 0;
Scanner in = new Scanner (System.in);
System.out.print("Geben Sie eine positive ganzzahlige Zahl ein: ");
input = in.nextInt();
System.out.println("Sie haben " + input + "eingegeben.");
do {
if (wiederholung == 0) {
System.out.println("Ergebnis: " + zahl1);
System.out.println("Ergebnis: " + zahl2);
} else {
ergebnis = zahl1 + zahl2;
System.out.println("Ergebnis: " + ergebnis);
zahl1 = zahl2;
zahl2 = ergebnis;
}
wiederholung++;
System.out.println("Wiederholung Nummer: " + wiederholung);
}
while ((wiederholung < input) && (ergebnis <= Long.MAX_VALUE));
in.close();
}
}
Interessant ist vor allem, die Wiederholung Nummer 93:
HTML:
Wiederholung Nummer: 90
Ergebnis: 4660046610375530309
Wiederholung Nummer: 91
Ergebnis: 7540113804746346429
Wiederholung Nummer: 92
Ergebnis: -6246583658587674878
Vielen Dank.
Gruss Phil