program PowerCalculation;
function MyPow(baseValue: Double; exponent: Integer): Double;
var
result: Double;
begin
result := 1;
while exponent > 0 do
begin
if (exponent and 1) = 1 then
result := result * baseValue;
exponent := exponent shr 1;
baseValue := baseValue * baseValue;
end;
MyPow := result;
end;
begin
WriteLn(MyPow(2, 3):0:2);
WriteLn(MyPow(3, 3):0:2);
WriteLn(MyPow(3, 2):0:2);
WriteLn(MyPow(2, 2):0:2);
WriteLn(MyPow(5.0, 2):0:2);
WriteLn(MyPow(-2, 4):0:2);
end.
(*
run:
8.00
27.00
9.00
4.00
25.00
16.00
*)