В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
elmirayanbukov
elmirayanbukov
11.02.2020 21:59 •  Информатика

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

Ответ:
desna80
desna80
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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?