Нахождения суммы - Prolog

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

Есть задание : вводить два числа n и d , результатом вывести суму, которая ищем как n+(n-d)+(n-d-d)+.. Пример: n=11, d=3 result=11+8+5+2=26 есть такой код:
sum1(N,R,D) :- sum1(N,0,D,R).
sum1(N,R,_,R):-
   N<0.
sum1(0,R,_,R).
sum1(N,T,D,R):-
   N > 0,
   T1 is T+N,
   N1 is N-D,
   sum1(N1,T1,D,R).
sum1(N,R,D):-
   (N<D;N=D), R is N.
Но что-то он не работает. Может кто-то помочь?

Код к задаче: «Нахождения суммы - Prolog»

textual
sum1(N,D,N):-N<D. 
sum1(N,D,S):-N2 is N-D,
                   sum1(N2,D,S1),
                   S is S1+N2.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

15   голосов, оценка 3.933 из 5


СДЕЛАЙТЕ РЕПОСТ