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.