Ich habe die Ackermann Funktion in C++ so programmiert:
Funktioniert soweit ganz gut, allerdings kommt schon bei ack(4, 1) ein Stack Überlauf. Kann man das irgendwie so programmieren, dass es auch für größere Zahlen funktioniert?
Code:
int Tackform::ack(int n, int m)
{
if (n == 0)
{
return (m + 1);
}
else if (m == 0)
{
return ack((n - 1), 1);
}
else
{
return ack(n - 1, (ack(n, (m - 1))));
}
}
Funktioniert soweit ganz gut, allerdings kommt schon bei ack(4, 1) ein Stack Überlauf. Kann man das irgendwie so programmieren, dass es auch für größere Zahlen funktioniert?