Возведение числа в степень Рекурсия - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите пожалуйста с заданием Определите возведение в целую степень через умножение и деление. Используйте рекурсию по показателю степени.

Решение задачи: «Возведение числа в степень Рекурсия»

textual
Листинг программы
power(_,0,1).
power(X,N,XN):-N>0,
                      N1 is N-1,
                      power(X,N1,XN1),
                      XN is XN1*X.
power(X,N,XN):-N<0,
                      N1 is N+1,
                      power(X,N1,XN1),
                      XN is XN1/X.

Объяснение кода листинга программы

  1. Входные аргументы функции power это _, 0 и 1.
  2. Если N больше 0, то рекурсивно вызывается функция power с аргументами X, N-1 и XN1, а затем происходит умножение XN1 на X и результат присваивается переменной XN.
  3. Если N меньше 0, то рекурсивно вызывается функция power с аргументами X, N+1 и XN1, а затем происходит деление XN1 на X и результат присваивается переменной XN.
  4. Переменная N не определяется в коде.
  5. Переменная X не определяется в коде.
  6. Переменная XN не определяется в коде.

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы