Hallo, wie könnte man folgende Rekursion umschreiben damit die Funktion schneller und effizienter arbeitet? Nämlich bei n = 45 dauert die Prozedur schon ca. 30 Minuten:
Java:
public class Q {
public static void main(String[] args) {
System.out.print("Geben Sie ein Zahl ein: ");
int n = readInt();
System.out.println("Q(" + n + ") = " + Q(n));
}
private static int Q(int n) {
if (n == 1 || n == 2)
return 1;
else
return Q(n - Q(n - 1)) + Q(n - Q(n - 2));
}
}