Возведение числа в степень Рекурсия - 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.
Объяснение кода листинга программы
- Входные аргументы функции
power
это_
,0
и1
. - Если
N
больше0
, то рекурсивно вызывается функцияpower
с аргументамиX
,N-1
иXN1
, а затем происходит умножениеXN1
наX
и результат присваивается переменнойXN
. - Если
N
меньше0
, то рекурсивно вызывается функцияpower
с аргументамиX
,N+1
иXN1
, а затем происходит делениеXN1
наX
и результат присваивается переменнойXN
. - Переменная
N
не определяется в коде. - Переменная
X
не определяется в коде. - Переменная
XN
не определяется в коде.