Hallo, ich hänge hier an einer Übungsaufgabe und verstehe die Fehlermeldung nicht. Also es geht darum Lychrel-Zahlen zu finden. Der Code sieht so aus:
Allerdings erhalte ich die Meldung:
integer number too large: 9223372036854775807
while(x < 9223372036854775807){ ...
Aber ich meine wer sagt denn, dass es ein integer sein soll? Es handelt sich doch bei allen Variablen um long. Oder dürfen nur Integer in einer Schleife als Bedingung auftauchen? Das macht doch keinen Sinn...
Wenn ich die Grenze auf 2147483647 setze erhalte ich noch zu viele Ergebnisse, weil die Schleife zu früh abbricht.
Ich hoffe ihr könnt mir das erklären.
Java:
static void LychrelNumbers(long n){
for(long i = 0; i <= n; i++){
long x = i;
while( x > 0 && x < 9223372036854775807){
if(!isPalindrom(x)){
x += reverse(x);
}else{
break;
}
}
if(!isPalindrom(x)){
System.out.println(i);
}
}
}
Allerdings erhalte ich die Meldung:
integer number too large: 9223372036854775807
while(x < 9223372036854775807){ ...
Aber ich meine wer sagt denn, dass es ein integer sein soll? Es handelt sich doch bei allen Variablen um long. Oder dürfen nur Integer in einer Schleife als Bedingung auftauchen? Das macht doch keinen Sinn...
Wenn ich die Grenze auf 2147483647 setze erhalte ich noch zu viele Ergebnisse, weil die Schleife zu früh abbricht.
Ich hoffe ihr könnt mir das erklären.