hey leute,
bin kurz vor den prüfungen und schau mir grad alte klausuren durch.
dabei bin ich auf folgende rekursion gestoßen, die ich etwas komisch finde:
habs mal zum testen mal in folgenden code "eingebettet":
also nicht dass ichs nicht versteh, aber finde das teilweise widersprüchlich, also:
obere funktion wandelt positive zahlen in negative um , wenn die zahl negativ ist??? (zahl<0) und ruft dann die untere funktion auf, welche eine 1 liefert wenn die zahl kleiner als 10 sein soll(also einstellig).
dann rechnet sie 1 + die zahl ohne ihrer letzten stelle (also zB. bei 123 nur die 12, weil zahl/10).
Tja und wenn man testet kommt aber was (für mich) überraschendes raus und zwar immer nur die zahl die man in der main-funktion eingegeben hat. Hier in dem fall die 5. aber auch bei anderen zahlen nur die zahl, welche man eingibt.??? :L
naja... denk mal ich sitz auf der leitung irgendwie... vllt kann mir ja einer genau erklären was hier passiert... vllt mit kommentaren direkt im code...
ich danke schon mal =)
gruß levitas
bin kurz vor den prüfungen und schau mir grad alte klausuren durch.
dabei bin ich auf folgende rekursion gestoßen, die ich etwas komisch finde:
Java:
static int met(int zahl){
if (zahl < 0) zahl = -zahl;
return rek(zahl);
}
static int rek(int zahl){
if (zahl < 10) return 1;
else
return 1+ rek(zahl / 10);
}
habs mal zum testen mal in folgenden code "eingebettet":
Java:
public class RekursionVersuch {
static int met(int zahl){
if (zahl < 0) zahl = -zahl;
return rek(zahl);
}
static int rek(int zahl){
if (zahl < 10) return 1;
else
return 1+ rek(zahl / 10);
}
public static void main(String[] args)
{
int zahl=5;
System.out.println(" " +zahl);
}
}
also nicht dass ichs nicht versteh, aber finde das teilweise widersprüchlich, also:
obere funktion wandelt positive zahlen in negative um , wenn die zahl negativ ist??? (zahl<0) und ruft dann die untere funktion auf, welche eine 1 liefert wenn die zahl kleiner als 10 sein soll(also einstellig).
dann rechnet sie 1 + die zahl ohne ihrer letzten stelle (also zB. bei 123 nur die 12, weil zahl/10).
Tja und wenn man testet kommt aber was (für mich) überraschendes raus und zwar immer nur die zahl die man in der main-funktion eingegeben hat. Hier in dem fall die 5. aber auch bei anderen zahlen nur die zahl, welche man eingibt.??? :L
naja... denk mal ich sitz auf der leitung irgendwie... vllt kann mir ja einer genau erklären was hier passiert... vllt mit kommentaren direkt im code...
ich danke schon mal =)
gruß levitas