Функция: вычислить количество троек подряд идущих элементов числового списка - Prolog

Узнай цену своей работы

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

написать функцию, вычисляющую количество троек подряд идущих элементов числового списка, в каждой из которых все элементы одинаковы. Например (1 1 3 3 3 3 4 3 4 4 4 2 1 1 1) -> 4.

Решение задачи: «Функция: вычислить количество троек подряд идущих элементов числового списка»

textual
Листинг программы
  1. qty31([], 0).
  2. qty31([X, X, X | T], Qty) :-
  3.     !,
  4.     qty31([X, X | T], Qty0),
  5.     Qty is Qty0 + 1.
  6. qty31([_ | T], Qty) :-
  7.     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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы