Олимпиадный тренинг

Задача . Быстрое возведение в степень


Задача

Темы: Рекурсия

Возводить в степень можно гораздо быстрее, чем за 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


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w64233
Free Pascal1
Java2
Python1284
Комментарий учителя