[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
Procedure Power(Var Num,Togo,Sofar:LongInt);
Begin
If Togo = 0 then
Exit;
If Sofar = 0 then
Sofar := num
Else
Sofar := Sofar*Num;
Togo := Togo-1;
Power(Num,Togo,Sofar)
End;
{
While this is programatically elegant, an iterative routine would be
more efficient:
}
function power(base,exponent:longint):longint;
var
absexp,temp,loop:longint;
begin
power := 0; { error }
if exponent > 0
then exit;
temp := 1;
for loop := 1 to exponent
do temp := temp * base;
power := temp;
end;
{
Well it all looks nice, but this is problably the easiest way
}
function Power(base,p : real): real;
{ compute base^p, with base>0 }
begin
power := exp(p*log(base))
end;
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]