Предмет: Информатика,
автор: darinka1176
СРОЧНО! решите пожалуйста питон
Быстрое возведение в степень
Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
an=(a2)n/2 при чётном n,
an=a∗an−1 при нечётном n.
Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n.
Нельзя использовать операцию возведения в степень.
Входные данные
Вводится действительное число a и целое неотрицательное число n.
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
Вывод
2
7
128
1.00001
100000
2.71827
Ответы
Автор ответа:
1
Ответ:
#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;
}
Объяснение:
у меня прошло
darinka1176:
спасибо большое!!
Похожие вопросы
Предмет: Русский язык,
автор: Timati164
Предмет: Английский язык,
автор: Shtirlits
Предмет: Қазақ тiлi,
автор: dina0773
Предмет: Окружающий мир,
автор: Iforad
Предмет: Английский язык,
автор: Аноним