Нахождение возведения в степень с помощью рекурсии

Чтобы найти значение x в степени y с помощью рекурсии, можно реализовать несколько методов. Вот несколько подходов:

  1. Наивный рекурсивный подход:

    • Определите базовый вариант: если y равен 0, верните 1.
    • В противном случае рекурсивно вызовите функцию с входными параметрами x и y-1 и умножьте результат на x.
    • Конечным результатом будет x в степени y.

    Пример кода на Python:

    def power(x, y):
       if y == 0:
           return 1
       else:
           return x * power(x, y-1)
  2. Оптимизированный рекурсивный подход (с использованием концепции возведения в степень путем возведения в квадрат):

    • Определите базовые случаи: если y равно 0, верните 1. Если y равно 1, верните x.
    • Если y четное, рекурсивно вызовите функцию с x и y/2 в качестве входных данных, возведите результат в квадрат и верните результат.
    • Если y нечетное, рекурсивно вызовите функцию с x и (y-1)/2 в качестве входных данных, возведите результат в квадрат и умножьте на x перед возвратом.
    • Конечным результатом будет x в степени y.

    Пример кода на Python:

    def power(x, y):
       if y == 0:
           return 1
       elif y % 2 == 0:
           temp = power(x, y // 2)
           return temp * temp
       else:
           temp = power(x, (y - 1) // 2)
           return x * temp * temp