Hallo zusammen , was macht diese Methode hier genau?

javaaltf4

Neues Mitglied
Hallo, ich hab ein wenig Probleme mit Rekursion. Was macht diese Methode genau? Was ist der base-case?

public static int myLog(int z) {
if (z == 1) {
return 0;
}
return 1 + myLog(z/4);
 
Was eine linearrekursive Methode, wie diese, in etwa macht, lässt sich durch Einsetzen der Methodendefinition in ein paar rekursive Aufrufe ganz gut durch "genaues Hinschauen" herausfinden. Wenn wir den Basisfall mal außen vorlassen, dann:
Java:
1 + (1 + (1 + (1 + ... myLog(z/4/4/4/4...))))
Ersetze einfach ein paar Aufrufe der Methode durch seine Definition (ohne Basisfall).
Die Klammerung dient nur der deutlichen Heraushebung, was da ersetzt wurde (ist natürlich bei Addition nicht notwendig).
 
Was eine linearrekursive Methode, wie diese, in etwa macht, lässt sich durch Einsetzen der Methodendefinition in ein paar rekursive Aufrufe ganz gut durch "genaues Hinschauen" herausfinden. Wenn wir den Basisfall mal außen vorlassen, dann:
Java:
1 + (1 + (1 + (1 + ... myLog(z/4/4/4/4...))))
Ersetze einfach ein paar Aufrufe der Methode durch seine Definition (ohne Basisfall).
Die Klammerung dient nur der deutlichen Heraushebung, was da ersetzt wurde (ist natürlich bei Addition nicht notwendig).
Danke dir. Wie wäre es Beispiel bei z=16?
 

Zurück
Oben