fragwürdige Rekursion

Levitas

Mitglied
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:

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
 

eRaaaa

Top Contributor
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.

Das liegt vllt daran, dass du die rekursiven Methoden garnicht aufrufst :D

Java:
System.out.println(met(5));
 
S

Spacerat

Gast
Java:
    public static void main(String[] args)
    {
        int zahl=5;
        System.out.println(" " +zahl); // man könnte es ja mal mit System.out.println(" " + met(zahl)); versuchen ;)
    }
@Edit: ...und wieder zu langsam... wenigstens bin ich der Bitte des TS nachgekommen und hab's in seinem Code kommentiert :D.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Rekursion Aufrufbaum Allgemeine Java-Themen 7
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
districon Rekursion und Dynamische Programmierung Allgemeine Java-Themen 2
Zeppi Rekursion StackOverflowError Allgemeine Java-Themen 4
J Rekursion Allgemeine Java-Themen 4
Zrebna Wie kann man endgültig aus einer Rekursion ausbrechen? Allgemeine Java-Themen 14
parrot Rekursion Aufgabe Allgemeine Java-Themen 12
B Rekursion Allgemeine Java-Themen 11
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
J Rekursion Mergesort Allgemeine Java-Themen 10
R Rekursion Allgemeine Java-Themen 3
R Programm zur Rekursion Allgemeine Java-Themen 5
V Rekursion Allgemeine Java-Themen 2
J Denkfehler Rekursion Allgemeine Java-Themen 5
I Raute mit Rekursion "zeichnen" Allgemeine Java-Themen 7
B Rekursion Allgemeine Java-Themen 2
B Rekursion Allgemeine Java-Themen 22
B Java Sternchen ausgeben mittels Rekursion Allgemeine Java-Themen 3
Hacer Rekursion- sumOfAllNodes Allgemeine Java-Themen 5
L Rekursion Binärbaum Allgemeine Java-Themen 7
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
Y Rekursion Allgemeine Java-Themen 19
M Permutation ohne Wiederholung mit rekursion Allgemeine Java-Themen 4
J Rekursion oder Iteration - verkettete Listen Allgemeine Java-Themen 8
T Pascalsches Dreieck ohne array und rekursion Allgemeine Java-Themen 9
P Rekursion Allgemeine Java-Themen 9
R Threading und Rekursion führen zu “GC overhead limit exceeded” Allgemeine Java-Themen 4
W Rekursion-Probleme mit return Allgemeine Java-Themen 35
C Rekursion Fibonacci Allgemeine Java-Themen 31
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
eQuest Rekursion Dauer Allgemeine Java-Themen 6
Weiti Swingworker und Rekursion Allgemeine Java-Themen 8
L Kleine Rekursion Allgemeine Java-Themen 12
M Rekursion!! Allgemeine Java-Themen 8
J Rekursion in Schleifenkonstrukt wandeln Allgemeine Java-Themen 21
R Rekursion Ablauflogik Allgemeine Java-Themen 19
M Rückwärts geführte Rekursion Allgemeine Java-Themen 3
Schandro StackOverflowError bei Rekursion verhindern Allgemeine Java-Themen 14
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
G Rekursion - Denksport Allgemeine Java-Themen 6
S Rekursion und StackOverflow Allgemeine Java-Themen 11
P Stackoverflow in Rekursion. Bin ich schuld oder Java? Allgemeine Java-Themen 9
W kompliziertes Konstrukt von Schleifen/If/else. Rekursion? Allgemeine Java-Themen 22
S Rekursion Allgemeine Java-Themen 2
Linad Tiefe der Rekursion als Abbruchbedingung Allgemeine Java-Themen 6
Linad Zahlensysteme -> Rekursion Allgemeine Java-Themen 4
N Frage zu einer Rekursion Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben