Функция: вычислить количество троек подряд идущих элементов числового списка - 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).

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

  1. qty31([], 0). - Определяет базовый случай, когда список пуст, количество троек равно 0.
  2. qty31([X, X, X | T], Qty) :- - Определяет рекурсивный случай, когда есть три элемента в списке.
  3. !, - Оператор разрешения, используется для того чтобы сделать следующий шаг в рекурсии без проверки.
  4. qty31([X, X | T], Qty0), - Рекурсивный вызов функции с двумя элементами в списке и счетчиком количества троек равным 0.
  5. Qty is Qty0 + 1. - Увеличивает счетчик на единицу.
  6. qty31([_ | T], Qty) :- - Рекурсивный вызов функции с одним элементом в списке и счетчиком количества троек.
  7. qty31(T, Qty). - Рекурсивный вызов функции с оставшейся частью списка и счетчиком количества троек.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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