Zum Inhalt springen

P9 – Praxis

Wichtiger Hinweis: Alle folgenden Aufgaben können und sollen rekursiv gelöst werden. Das  heißt, dass ihr keine Schleifen (weder while, noch for, noch do-while)  dafür benötigt.  

Aufgabe 9.1
Schreibe eine rekursive Methode, welche die Funktion plus(x,y) = x+y rekursiv berechnet. Verwende dazu lediglich +1 oder -1.

Aufgabe 9.2
Schreibe eine rekursive Methode, welche die Funktion minus(x,y) = x-y rekursiv berechnet. Verwende dazu lediglich +1 oder -1.

Aufgabe 9.3
Schreibe eine rekursive Methode, welche die Funktion mult(x,y) = x*y rekursiv berechnet. Verwende dazu +1 und -1
(deine eigenen Methoden plus(x,y) und minus(x,y) darfst du verwenden, falls nötig, denn sie verwenden nur +1 und -1)

Aufgabe 9.3
Schreibe eine rekursive Methode, welche die potenz(x,y) = xy berechnet. Verwende dazu lediglich +1, -1
(deine eigenen Methoden plus(x,y), minus(x,y) und mult(x,y) darfst du verwenden, falls nötig, denn sie verwenden nur +1 und -1)

Aufgabe 9.4
Schreibe eine rekursive Methode, welche die Funktion mod(x,y) = x modulo y berechnet. Verwende dazu lediglich +1 oder -1
(deine eigenen Methoden plus(x,y), minus(x,y) mult(x,y) und potenz(x,y) darfst du verwenden, falls nötig, denn sie verwenden nur +1 und -1)

Aufgabe 9.5
Schreibe eine rekursive Methode, welche die Fakultät fak(n) = n! berechnet. Verwende dazu lediglich +1 oder -1
(deine eigenen Methoden plus(x,y), minus(x,y) mult(x,y), potenz(x,y) und mod(x,y) darfst du verwenden, falls nötig, denn sie verwenden nur +1 und -1)

Aufgabe 9.6
Schreibe eine rekursive Methode, welche von 1 bis 10 hochzählt und dann wieder herunterzählt.

Aufgabe 9.7
Schreibe eine rekursive Methode, welche den größten gemeinsamen Teiler (ggT) von zwei Parametern berechnet und zurückgibt.

Aufgabe 9.8
Schreibe eine rekursive Methode, welche (alleine) die Türme von Hanoi spielt. Die Funktion soll als Parameter die Anzahl der Scheiben übergeben bekommen.
Du hast 3 Stäbe, welche mit A, B und C bezeichnet werden. Am Anfang liegen alle Scheiben
auf Stab A. Du sollst sie Schrittweise nach C verschieben. Gib jeden einzelnen Schritt aus.
System.out.println(“Verschiebe Scheibe von Stab “+ von + “nach Stab “+ nach);
Zähle die Anzahl der benötigten Schritte.

Beispiel: plus(8,4)
Ergebnis soll 12 sein.

plus(8,4) ist das gleiche wie
plus(9,3) ist das gleiche wie
plus(10, 2) usw.

Wann musst du mit der Rekursion aufhören?
In welcher Variable steht dann das Ergebnis? x oder y?

Beispiel: minus(8,4)
Ergebnis soll 4 sein.

minus(8,4) ist das gleiche wie
minus(7,3) ist das gleiche wie
minus(6,2) )usw.

Wann musst du mit der Rekursion aufhören?
In welcher Variable steht dann das Ergebnis? x oder y?

eine ist bewusst dick geschrieben, denn es wird nur eine rekursive Methode benötigt.

Man kann IM aber auch VOR dem rekursiven Abstieg etwas tun (bzw. ausgeben)

Schau dir mal den euklidischen Algorithmus an.