Возвести число в отрицательную степень - Turbo Pascal (29959)

Узнай цену своей работы

Формулировка задачи:

Условие:Дано действительное положительное число a и целоe число n. Вычислите an. Решение оформите в виде функции power(a, n). Стандартной функцией возведения в степерь пользоваться нельзя. Вот сам код,но почему то иногда дает неправильный ответ,хотя все первые тесты проходят.Не могли бы вы подсказать,где ошибка?

Решение задачи: «Возвести число в отрицательную степень»

textual
Листинг программы
function Pow(a: Real; n: Integer): Real;
var r: Real;
begin
  if a=0 then begin
    Pow:=0; Exit;
  end;
  if n<0 then begin
    Pow:=1/Pow(a,-n); Exit;
  end;
  r:=1;
  while n>0 do begin
    if Odd(n) then r:=r*a;
    n:=n div 2; a:=a*a;
  end;
  Pow:=r;
end;

Объяснение кода листинга программы

  1. Функция Pow принимает два аргумента: a (которое возводится в отрицательную степень) и n (степень, в которую нужно возвести a).
  2. Если a равно нулю, то функция возвращает ноль.
  3. Если n меньше нуля, то функция возвращает обратное значение Pow(a,-n).
  4. Создается переменная r и присваивается ей значение единицы.
  5. Создается цикл while, который выполняется до тех пор, пока n больше нуля.
  6. В каждой итерации цикла проверяется, является ли n нечетным числом. Если это так, то значение r умножается на a.
  7. n делим на два, а a возводим в квадрат.
  8. После завершения цикла значение r становится результатом функции Pow.
  9. Функция возвращает значение r.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы