Servus Leute,
ich bin im Moment dabei ein bisschen mich mit Rekursion vertraut zu machen. Habe auch schon die geläufigen Rekursionen durchgemacht und eigentlich gut verstanden (Fibonacci, Hanoi, Quersumme ...).
Ich habe mir nun folgende Aufgabe gestellt:
Eine Methode
soll true liefern, wenn eine Ziffernfolge ausschliesslich aus 2en besteht. Also z.B. 222 oder 22. Wenn z.B. 252 oder so kommt soll als Rückgabe false erscheinen.
Hab auch schon mir einen kleinen Algorithmus geschaffen, der aber noch nicht ganz funktioniert. Das Problem ist, wenn eine "richtige" zahl kommt (z.B. 222) liefert es zwar true, wenn aber eine "falsche" zahl kommt wie 2345 kommt ein java.lang.StackOverflowError (was ja denke ich mal auf ne Endlosschleife oder sowas in der Art hinweist).
Hier mal mein Code:
Ich hoff ihr findet das Problem
Grüße
Levitas
ich bin im Moment dabei ein bisschen mich mit Rekursion vertraut zu machen. Habe auch schon die geläufigen Rekursionen durchgemacht und eigentlich gut verstanden (Fibonacci, Hanoi, Quersumme ...).
Ich habe mir nun folgende Aufgabe gestellt:
Eine Methode
Java:
static boolean istNur2 (int n)
Hab auch schon mir einen kleinen Algorithmus geschaffen, der aber noch nicht ganz funktioniert. Das Problem ist, wenn eine "richtige" zahl kommt (z.B. 222) liefert es zwar true, wenn aber eine "falsche" zahl kommt wie 2345 kommt ein java.lang.StackOverflowError (was ja denke ich mal auf ne Endlosschleife oder sowas in der Art hinweist).
Hier mal mein Code:
Java:
public class RekursionNur2 {
static boolean istNur2 (int n)
{
//wenn n den wert 2 hat
if (n == 2)
return true;
//wenn n nicht 2 ist und noch einstellig ist
else if(n != 2 && n < 10)
return false;
//wenn n zweistellig ist
else if(n > 9){
int result = n%10;
if(result == 2){
return istNur2(n);
}
else
return false;
}
return true;
}
public static void main(String[] args)
{
int n = 2245;
System.out.println(istNur2(n));
}
}
Ich hoff ihr findet das Problem
Grüße
Levitas