Решение задачи Быстрое возведение в степень с Яндекс Контест

Без пояснения   Просмотров: 3532


Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями: an=(a2)n/2 при четном n, an=a⋅ an-1 при нечетном n. Реализуйте алгоритм быстрого возведения в степень. Если вы все сделаете правильно, то сложность вашего алгоритма будет. Для проверки используйте калькулятор возведения в степень.


Код

def func(a, n):
    if n == 0:
        return 1
    elif n == 1:
        return a
    elif n % 2:
        return a * func(a, n - 1)
    else:
        return func(a * a, n // 2)
e = 0
a = float(input())
n = int(input())
print(func(a, n))

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет