Написать программу возведения числа a в степень n.с циклом repeat или while. 65

olaskripcenko87 olaskripcenko87    2   16.09.2019 04:30    0

Ответы
needlife needlife  07.10.2020 19:00
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadReal('Введите число a:');
  var n:=ReadInteger('Введите показатель степени n:');
  if n<=0 then begin
    Writeln('Показатель степени должен быть натуральным числом');
    Exit
    end;
  // перевод показателя степени в двоичную систему счисления
  var t:=n;
  var r:string:='';
  while t>=2 do (r,t):=(t mod 2+r,t shr 1);
  r:=t+r;
  // возведение в степень
  var (rr,i):=(a,2);
  while i<=r.Length do begin
    rr:=Sqr(rr);
    if r[i]='1' then rr*=a;
    i+=1
    end;
  Writeln(a,'^',n,' = ',rr)  
end.

Примеры
Введите число a: 3.182
Введите показатель степени n: 11
3.182^11 = 338611.675261463

Введите число a: 2
Введите показатель степени n: 10
2^10 = 1024
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика