|
{ арифметические алгоритмы: возведение целого числа в натуральную степень }
{ Вариант 2 (более быстрый и эффективный) }
{ ------------------------------------------------------------------------ }
var x,y:integer;
function Degree(a,b:integer):longint;
var r:longint; c:integer;
begin
r:=1; c:=a;
while b > 0 do begin
if odd(b) then begin
r:=r*c;
dec(b);
end else begin
c:=c*c;
b:=b div 2;
end;
end;
Degree:=r;
end;
begin
writeln('введите число и (через пробел) степень числа');
readln(x,y);
writeln(Degree(x,y)); { print x^y }
end.
| |