Функция: вычислить количество троек подряд идущих элементов числового списка - Prolog
Формулировка задачи:
написать функцию, вычисляющую количество троек подряд идущих элементов числового списка, в каждой из которых все элементы одинаковы.
Например (1 1 3 3 3 3 4 3 4 4 4 2 1 1 1) -> 4.
Решение задачи: «Функция: вычислить количество троек подряд идущих элементов числового списка»
textual
Листинг программы
qty31([], 0). qty31([X, X, X | T], Qty) :- !, qty31([X, X | T], Qty0), Qty is Qty0 + 1. qty31([_ | T], Qty) :- qty31(T, Qty).
Объяснение кода листинга программы
- qty31([], 0). - Определяет базовый случай, когда список пуст, количество троек равно 0.
- qty31([X, X, X | T], Qty) :- - Определяет рекурсивный случай, когда есть три элемента в списке.
- !, - Оператор разрешения, используется для того чтобы сделать следующий шаг в рекурсии без проверки.
- qty31([X, X | T], Qty0), - Рекурсивный вызов функции с двумя элементами в списке и счетчиком количества троек равным 0.
- Qty is Qty0 + 1. - Увеличивает счетчик на единицу.
- qty31([_ | T], Qty) :- - Рекурсивный вызов функции с одним элементом в списке и счетчиком количества троек.
- qty31(T, Qty). - Рекурсивный вызов функции с оставшейся частью списка и счетчиком количества троек.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д