baumanec199613
?>

Быстрое возведение в степень Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями: an=(a2)n/2 при чётном n, an=a∗an−1 при нечётном n. Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n. Нельзя использовать встроенную операцию возведения в степень, в силу особенностей тестирующей системы избегайте слова pow в названии функции. Входные данные Вводится действительное число a и целое неотрицательное число n. Выходные данные Выведите ответ на задачу. Примеры

Информатика

Ответы

Svetlana290419

#include <iostream>

double s(double a, int er)

{

      if (er == 0)

      {

              return 1;

      }

      if (er % 2 == 0)

      {

              return s(a * a, er / 2);

      }

      return a * s(a, er - 1);

}

int main()

{

      double a;

      int n;

      std::cin >> a >> n;

      std::cout << s(a, n);

      return 0;

}

Объяснение:

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Быстрое возведение в степень Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями: an=(a2)n/2 при чётном n, an=a∗an−1 при нечётном n. Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n. Нельзя использовать встроенную операцию возведения в степень, в силу особенностей тестирующей системы избегайте слова pow в названии функции. Входные данные Вводится действительное число a и целое неотрицательное число n. Выходные данные Выведите ответ на задачу. Примеры
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

YuREVICh646
Нозадзе_Новиков392
galinaobraz
Logukate
zaseche99
kirillreznikov
Pastushenkoen
gamolml
Валентина980
ktv665
papushinrv4985
yulialoveinthelow2010
Igorevich1512
mukbidc
vlsvergun59