program Rec10;
{ recursive square function example }
{ exemplo de funcao quadratica recursiva }
{ Turbo Pascal 7 source }
{ Free Pascal Source }
{ Delphi Source }
{ Joao Paulo Schwarz Schuler }
{ http://www.schulers.com/jpss }
function RSqr(X:longint):longint;
var Oper:longint;
function DoIt(X:longint):longint;
begin
if X=0
then DoIt:=0
else begin
if X>00
then DoIt:= Oper+DoIt(X-1)
else DoIt:=-Oper+DoIt(X+1)
end
end; { of function DoIt }
begin
Oper:=X;
RSqr:=DoIt(X);
end;
begin
Writeln(RSqr(-5)); { 25 }
Writeln(RSqr(5)); { 25 }
Writeln(RSqr(0)); { 0 }
Writeln(RSqr(1)); { 1 }
Writeln(RSqr(50)); { 2500 }
end.