sonderbares ergebnis

moccajoghurt

Bekanntes Mitglied
Java:
public class Problem2 {
	public static void main(String[] args) {

		int summe = 8;
		int x = 13;
		int y = 8;
		int z = 0;

		while (true) {

			z = x + y;

			if (x < y) {
				x = z;
			} else {
				y = z;
			}

			if (z % 2 == 0 && summe + z < 4000000) {
				summe += z;
				if (summe + z >= 4000000) {
					break;
				}
			}
		}
		System.out.println(summe);
	}
}
Ich bin gerade dabei beim Euler-Projekt ein paar Probleme zu lösen. Dafür musste ich diesen Code anwenden.
Bei mir liefert summe am ende den Wert -389699412.
Wie kann bei dieser Schleife ein negativer Wert entstehen? Eclipse kaputt?

PS: ok ich habe gerade gesehen, was bei meinem code gehörig schief läuft, aber wie das ergebnis zustande kommt, kann ich immernoch nicht genau erklären 😀
 
Zuletzt bearbeitet:
Du wirst da wohl in nen überlauf reinlaufen, dadurch werden die werte negativ.
was soll der code berechnen?
 
dann musst du deine abbruchbedingung ein bissl überarbeiten.

nen anderer vorschlag wäre folgender:

Java:
public class Problem2 {
    public static void main(String[] args) {
    	fib(1,1);
    }
    
    public static void fib(int x, int y) {
    	int nextFib = x + y;
    	
    	if (nextFib > 4000000) {
    		return;
    	}
    	
    	if (nextFib % 2 == 0) {
    		System.out.println(nextFib);
    	}
    	
    	fib(y, nextFib);
    }
}
 

Zurück
Oben