Рекурсивная сумма - Prolog
Формулировка задачи:
Язык: Swi Prolog. Надо сделать сумму так, чтобы прибавлялось по 1.
Немного набросал
Но оно не работает
Что я не так делаю?
Решение задачи: «Рекурсивная сумма»
textual
Листинг программы
sub(A,0,A). sub(A,B,A1):-B1 is B-1, sub(A,B1,A2), A1 is A2-1.
Объяснение кода листинга программы
В данном коде рекурсивная функция sub вычисляет сумму элементов списка A от индекса 0 до индекса B-1.
sub(A,0,A).
- базовый случай, когда индекс равен 0, функция возвращает сам список A.sub(A,B,A1):-B1 is B-1,
- рекурсивный случай, когда индекс не равен 0, функция вызывает саму себя с новыми значениями:sub(A,B1,A2)
- вызов функции sub с новыми значениями:sub(A,B1,A2)
- рекурсивный вызов функции sub с новыми значениями:A1 is A2-1
- новое значение переменной A1, равное текущему значению A2 минус 1.sub(A,B1,A2)
- рекурсивный вызов функции sub с новыми значениями.A1 is A2-1
- новое значение переменной A1, равное текущему значению A2 минус 1.sub(A,B1,A2)
- рекурсивный вызов функции sub с новыми значениями.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д