Hi Jutta,
ich hab Dein Programm mal in Java übernommen und ein paar Ausgaben reingeschrieben. Das Ergebnis sieht dann so aus:
Recursion level: 1
a = 2 b = 2 c = 2
Entering (b \> 1)
Recursion level: 2
a = 1 b = 1 c = 2
Entering (b 1)
Recursion level: 5
a = 0 b = 1 c = 2
Entering (a == 0) && (b == 1)
Recursion level: 6
a = 0 b = 2 c = 2
Entering (b \> 1)
Recursion level: 7
a = -1 b = 1 c = 2
Entering (a 1)
Recursion level: 11
a = -1 b = 3 c = 6
Entering (a 1)
Recursion level: 15
a = 0 b = 2 c = 22
Entering (b \> 1)
Recursion level: 16
a = -1 b = 1 c = 22
Entering (a 1)
Recursion level: 20
a = -1 b = 2 c = 3
Entering (a 1)
Recursion level: 24
a = -1 b = 45 c = 11
Entering (a
Der Quellcode dazu:
public int rec(int a, int b, int c)
{
level++;
System.out.println("Recursion level: "+ level);
System.out.println("\ta = "+ a +" b = "+ b+ " c = "+ c);
int result = 0;
if ((a == 0) && (b == 1))
{
System.out.println("\tEntering (a == 0) && (b == 1)");
result = 2 + c;
}
else
if ((a 1)
{
System.out.println("\tEntering (b \> 1)");
result = c + rec(a - 1, rec(a - 1, b - 1, c), rec(a - 1, b, b));
}
else
{
System.out.println("\tEntering (b
Vielleicht hilft Dir das, aus dem ganzen etwas schlauer zu werden.
Gruss,
Herb