Hallo zusammen,
ich sitze seit Minuten über 2 Aufgaben, die ich zur Übung lösen soll.
Die Aufgabenstellung lautet: Betrachten Sie das folgende Java-Programm und geben Sie an, was das Programm ausdruckt.
public class Aufgabe1
{
public static void main(String[] args)
{
System.out.println("f = "+f(2345,1234));
}
public static int f(int n, int m)
{
if (n%m == 0) return 0;
return 2*f(n-1, m-1);
}
}
public class Aufgabe2
{
public static int f(int n)
{
if (n<2) return 1;
return 1+f(n/2);
}
public static void main(String[] args)
{
System.out.println("f(1000) = "+ f(1000));
}
}
Ich besitze zwar die Lösungen zu den Aufgaben - verstehe aber aufgrund der Rekursion nicht, wie ich auf die Ausgabe kommen soll!
Aufgabe 1: f(1000)=10
Aufgabe 2:f = 0
Kann mir jemand bitte erklären, wie ich die einzelnen Rekursionsschritte (rekursiver Abstieg und rekursiver Aufstieg) im Kopf nachvollziehen kann?
Vielen Dank im vorraus!