Rekursionen Reduzieren?

1 Antwort

Du sollst die gegebenen Funktionen von Hand ausrechnen, dabei die jeweiligen Schritte hinschreiben.

Beispiel:

f1(11) = f1(11 mod 10 + f1(11 / 10)) = f1(1 + 11/10) = f1(21/10) = 21/10;

(Oder so ähnlich, wenn ihr Ganzzahldivision machen sollt, kommt was anderes raus.)

Was die Funktionen berechnen kannst du dir danach überlegen.

Mdrs08 
Fragesteller
 13.11.2022, 11:05

danke dir! wie kann ich es als code Java schreiben?

0
Destranix  13.11.2022, 11:09
@Mdrs08

Da steht nichts davon, dass du das in Java schreiben sollst.

Deine Frage lässt mich allerdings vermuten, dass hier ganzzahldivision anzuwenden wäre, dann wäre mei Beispiel folgendes:

f1(11) = f1(11 mod 10 + f1(11 / 10)) = f1(1 + 1) = f1(2) = 2;

In Java lässt sich das recht banal einfach runterschreiben.

Für die Unterscheidung bei der Funktion nimmst du eine If-Abfrage bzw. gegebenenfalls euch Else-If-Abfragen.

Ein Modulo kannst du mit dem '%'-Operator berechnen.

Ob eine Zahl gerade oder ungerade ist kannst du über ihren Rest bei der Division durch 2 erfahren.

1
Mdrs08 
Fragesteller
 13.11.2022, 11:29

bei Aufgabe b; wie löse ich es,?

0
Destranix  13.11.2022, 12:09
@Mdrs08

Wie die zuvor auch, nur dass die Funktion eben zweistellig ist.

Beispiel:

f2(1, 2) = 1 * f2(1, (2-1)/2) * f2(1, (2-1)/2) = f2(1, 1/2) * f2(1, 1/2) = f1(1, 0) * f1(1, 0) = 1 * 1 = 1;
0