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

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

Показать ответ
Ответ:
VeryLittleTasia
VeryLittleTasia
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота