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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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