Быстрое возведение в степень
Задача
Возводить в степень можно гораздо быстрее, чем за n
умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
\(a^n=(a^2)^{n/2},\ при \ четном \ n, \\ a^n=a \cdot a^{n-1},\ при \ нечетном \ n.\)
Реализуйте алгоритм быстрого возведения в степень. Если вы все сделаете правильно, то сложность вашего алгоритма будет O(logn)
.
Входные данные
Программа получает на вход вещественное число a
и целое число n
. Каждое число в отдельной строке.
Выходные данные
Выведите
\(a^n\).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2
7 |
128 |
2 |
1.00001
100000 |
2.71827 |
Запрещенные операторы: for
; while
; until
; math
; **
; pow