адача 3. Пусть a - вещественное число отличное от нуля и n - целое неотрицательное число. Составить рекурсивную программу-функцию, возвращающую величину an.
Решение. Приведенная ниже функция power(a,n) дает решение задачи за n рекурсивных вызовов:
Уменьшить количество вызовов можно так. Организуем декомпозицию иначе, представив величину an в виде:
Отсюда сразу же получаем алгоритм вычисления an, требующий не более чем log2(n) рекурсивных вызовов. Реализуется он функцией pow(a,n):
Функция powe(n) также вычисляет an не более чем за log2(n) рекурсивных вызовов: