Hi,
anscheinend hat er recht, denn das gleiche Problem tritt auch bei mir auf:
Delphi-Quellcode:
function TForm1.ack(x,y : integer) : Integer;
begin
{ Die Ackermann - Definition:
[ y + 1 wenn x = 0;
A( x, y) = [ A( x-1 ,1) wenn y = 0;
[ A( x-1, A(x, y-1) in jedem anderen Fall;
}
if (x <> 0) and (y <> 0) then
result := ack(x-1, ack(x,y-1))
else
if (y = 0) then
result := ack(x-1, 1)
else
result := y+1;
end;
Die Definition kommt von
http://www.loisch.de/, findet sich so aber auch an mehreren anderen Stellen.
Wird nun Ack(0,0) aufgerufen, sprich: rutscht in Folge davon dann x ins Negative, haben wir eine unendlich Rekursion. Oder widerlegt mir das ein Mathematiker?
Auf jeden Fall führt eine unendliche Rekursion zu einem Stack-Overflow, und der lässt sich hier nicht wirklich vermeiden, oder?
Edit: Text etwas umformuliert um's verständlich zu machen