Предмет: Информатика, автор: fkid2006

Дам 15 баллов!!! НА С++!!!!!!!!! Быстрое возведение в степень
Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:

an=(a2)n/2 при чётном n,

an=a∗an−1 при нечётном n.

Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n.

Нельзя использовать встроенную операцию возведения в степень, в силу особенностей тестирующей системы избегайте слова pow в названии функции.

Входные данные

Вводится действительное число a и целое неотрицательное число n.

Выходные данные

Выведите ответ на задачу.

Примеры
Ввод
Вывод
2
7
128
1.00001
100000
2.71827

Ответы

Автор ответа: dashenkavorobyova
2

Ответ:

#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;

}

Объяснение:

у меня прошло

Похожие вопросы
Предмет: Немецкий язык, автор: аркаша4
Предмет: Русский язык, автор: Anikina1980
Предмет: Математика, автор: bonnieFazbunnie